4

次のプログラムがあります。

let txt = "إتصالات"
printfn "Text is: %s" txt
0 // return an integer exit code

txt の値が一部のアラビア文字に設定されています。プログラムを実行すると、コンソールに表示されるのは、文字ではなく疑問符の束です。Visual Studio 2012 デバッガーでは、txt 変数に対して正しい文字が表示されています。

私は何を間違っていますか? 国際文字を正しく表示するにはどうすればよいですか?

4

1 に答える 1

9

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 を覗いて、書式設定済みのテキストをレンダリングするためにどのフォントが使用されているかを確認しました。Courier Newそのリストと Windows Character Map ツール ([スタート] -> [すべてのプログラム] -> [アクセサリ] -> [システム ツール] -> [Character Map]) を使用すると、フォント (Windows に付属) がアラビア文字をサポートしていることがわかりました。Courier New「Windows コンソールと TrueType フォント」リンク (上記) のレジストリ ハックを使用すると、コンソールで使用できるフォントとして追加できるはずです。

于 2013-07-07T17:15:16.983 に答える