回答:
出力エンコーディングがASCIIに設定されている可能性があります。出力を送信する前にこれを試してください:
Console.OutputEncoding = System.Text.Encoding.UTF8;
(サポートドキュメントへのMSDN リンク。)
そして、ここにあなたが便利な小さなコンソールテストアプリがあります:
C#
using System;
using System.Text;
public static class ConsoleOutputTest {
public static void Main() {
Console.OutputEncoding = System.Text.Encoding.UTF8;
for (var i = 0; i <= 1000; i++) {
Console.Write(Strings.ChrW(i));
if (i % 50 == 0) { // break every 50 chars
Console.WriteLine();
}
}
Console.ReadKey();
}
}
VB.NET
imports Microsoft.VisualBasic
imports System
public module ConsoleOutputTest
Sub Main()
Console.OutputEncoding = System.Text.Encoding.UTF8
dim i as integer
for i = 0 to 1000
Console.Write(ChrW(i))
if i mod 50 = 0 'break every 50 chars
Console.WriteLine()
end if
next
Console.ReadKey()
End Sub
end module
また、選択したコンソールフォントがその特定の文字をサポートしていない可能性もあります。Windowsツールバーメニュー(C :.のようなアイコン)をクリックし、[プロパティ]-> [フォント]を選択します。他のフォントを試して、文字が正しく表示されるかどうかを確認します。
MSDNでエレガントなソリューションを見つけました
System.Console.Write('\uXXXX') //XXXX is hex Unicode for character
このシンプルなプログラムは、画面上に℃を書き込みます。
using System;
public class Test
{
public static void Main()
{
Console.Write('\u2103'); //℃ character code
}
}
Console.OutputEncodingプロパティ
http://msdn.microsoft.com/library/system.console.outputencoding(v=vs.110).aspx
コンソールにUnicode文字を正常に表示するには、以下が必要です。
しかも Console.OutputEncoding = System.Text.Encoding.UTF8;
一部の文字については、追加のフォント(つまり、中国語)をインストールする必要があります。
Windows 10最初に行く地域と言語の設定や必要な言語のサポートをインストールします。
その後、コマンドプロンプトのプロポーティ(または必要に応じてデフォルト)に移動し、言語をサポートするフォント(中国語の場合はKaiTi など)を選択します。
これは私にとってはうまくいきます:
Console.OutputEncoding = System.Text.Encoding.Default;
一部の記号を表示するには、コマンドプロンプトのフォントをLucida Consoleに設定する必要があります。
コマンドプロンプトを開きます。
コマンドプロンプトの上部バーを右クリックします。
[プロパティ]をクリックします。
フォントがラスターフォントに設定されている場合は、それをLucida Consoleに変更します。
Console.OutputEncoding
Encoding.Unicode
(UTF-16)には設定できません。Encoding.UTF8
ただし、可能です。