コンソールアプリケーションで、.NETを使用して℃
などの文字を記述できるかどうか疑問に思っていました。この文字を書き込もうとすると、コンソールに疑問符が出力されます。
出力エンコーディングがASCIIに設定されている可能性があります。出力を送信する前にこれを使用してみてください:
Console.OutputEncoding = System.Text.Encoding.UTF8;
(MSDN link サポートドキュメントへ。)
そして、ここに便利な小さなコンソールテストアプリがあります。
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文字をコンソールに正常に表示するには、次のものが必要です。