Согласно How to write unicode chars to console? вам необходимо установить OutputEncoding
свойство на консоли, например:
System.Console.OutputEncoding <- System.Text.Encoding.Unicode
let txt = "إتصالات"
printfn "Text is: %s" txt
0 // return an integer exit code
Ответ на этот вопрос стоит читать, хотя, потому что он также описывает, почему вы должны изменить консольный шрифт до действительно сделать эту работу, а также, как это сделать.
Вот некоторые дополнительные ссылки с дополнительной информацией:
Обновление: поскольку текст в арабском тексте в примере выглядит просто отлично на StackOverflow, я заглянул в CSS, чтобы увидеть, какие шрифты они используют для рендеринга предварительно отформатированного текста. Используя этот список и инструмент «Карта символов Windows» («Пуск» -> «Все программы» -> «Стандартные» -> «Служебные» -> «Символьная карта»), я обнаружил, что шрифт Courier New
(который поставляется с Windows) поддерживает арабские символы. Если вы используете хакер реестра в ссылке «Консоль Windows и шрифты TrueType» (см. Выше), вы должны добавить Courier New
в качестве шрифта, который вы можете использовать в консоли.
Вы установили ['Console.OutputEncoding'] (http://msdn.microsoft.com/en-us/library/system.console.outputencoding.aspx)? и используете ли вы консольный шрифт, который поддерживает эти символы? – Mgetz
Интересно, если вы запускаете этот код на http://www.tryfsharp.org, он производит правильный вывод. – JonnyBoats