在C#中输出Unicode字符

时间:2010-07-01 22:23:41

标签: c# unicode c#-3.0 string

我是编程和自学的新手。我正在尝试输出Taurus的占星符号,它应该是Unicode中的U + 2649。这是我正在使用的代码...

string myString = "\u2649";
byte[] unicode = System.Text.Encoding.Unicode.GetBytes(myString);
Console.WriteLine(unicode.Length);

我得到的结果是数字2而不是符号或字体。我确定我做错了。

4 个答案:

答案 0 :(得分:7)

您需要有一个显示该字形的字体。如果你这样做,那么:

Console.WriteLine(myString); 

就是你所需要的一切。

编辑:注意,我能找到的唯一具有此字形的字体是“MS Reference Sans Serif”。​​

答案 1 :(得分:5)

为什么要将其转换为unicode,这不会做任何事情..失去转换并执行以下操作:

string a ="\u2649"  ; 

Console.write(a) ; 

答案 2 :(得分:2)

Unicode字符的长度(以字节为单位) 2 ,您正在将Length写入控制台。

Console.WriteLine(unicode.Length);

如果要显示实际角色,则需要:

Console.WriteLine(myString); 

您必须使用具有该Unicode范围的字体才能正确显示。

<强>更新

使用默认控制台字体,上面的Console.WriteLine(myString)会输出?字符,因为没有\u2649。到目前为止我用google搜索,没有简单的方法可以让控制台显示Unicode字符,这些字符不是系统代码页的一部分,也不是您为控制台选择的字体。

可以更改控制台使用的字体:Changing Console Fonts

答案 3 :(得分:1)

您正在输出字符的长度(以字节为单位)。然而,控制台不支持unicode输出,所以它会以“?”形式出现。字符。