web-dev-qa-db-ja.com

Unicode文字をコンソールに書き込む方法は?

コンソールアプリケーションで、.NETを使用してなどの文字を記述できるかどうか疑問に思っていました。この文字を書き込もうとすると、コンソールに疑問符が出力されます。

130
Sam

出力エンコーディングが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:などのアイコン)をクリックし、[プロパティ]-> [フォント]を選択します。他のフォントを試して、キャラクターが適切に表示されるかどうかを確認してください。

picture of console font edit

173
Paul Sasik

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
    }
}
8
Destiner

Console.OutputEncodingプロパティ

http://msdn.Microsoft.com/library/system.console.outputencoding(v = vs.110).aspx

Unicode文字をコンソールに正常に表示するには、次のものが必要です。

  • コンソールは、Lucida ConsoleやConsolasなどのTrueTypeフォントを使用して文字を表示する必要があります
7
Pažout

Console.OutputEncoding = System.Text.Encoding.UTF8;に加えて

一部の文字については、追加のフォント(中国語など)をインストールする必要があります。

InWindows 10最初に地域と言語の設定および必要な言語のサポートのインストール: enter image description here

その後、コマンドプロンプトプロパティ(または必要に応じてデフォルト)に移動し、フォントを選択できますそれはあなたの言語をサポートしています(KaiTi中国語の場合): enter image description here

これで行く準備ができました: enter image description here

4
watbywbarif