在C#中输出Unicode字符
我是编程和自学的新手。 我正在尝试输出Taurus的占星符号,它应该是Unicode中的U + 2649。 这是我正在使用的代码……
string myString = "\u2649"; byte[] unicode = System.Text.Encoding.Unicode.GetBytes(myString); Console.WriteLine(unicode.Length);
我得到的结果是数字2而不是符号或字体。 我确定我做错了什么。
您需要有一个显示该字形的字体。 如果你这样做,那么:
Console.WriteLine(myString);
是你所需要的全部。
编辑:注意,我能找到的唯一具有此字形的字体是“MS Reference Sans Serif”。
为什么要将它转换为unicode,这不会做任何事情..失去转换并执行以下操作:
string a ="\u2649" ; Console.write(a) ;
Unicode字符的长度(以字节为单位)为2 ,您将Length
写入控制台。
Console.WriteLine(unicode.Length);
如果要显示实际字符,则需要:
Console.WriteLine(myString);
您必须使用具有该Unicode范围的字体才能正确显示。
更新:
使用默认的控制台字体,上面的Console.WriteLine(myString)
会输出一个?
字符,因为没有\u2649
。 到目前为止我用google搜索,没有简单的方法可以让控制台显示Unicode字符,这些字符不是系统代码页的一部分,也不是您为控制台选择的字体。
可以更改控制台使用的字体 : 更改控制台字体
您正在输出字符的长度,以字节为单位。 然而,控制台不支持unicode输出,所以它会以“?”forms出现。 字符。