Unicode特殊字符不在标签中显示

时间:2015-07-29 03:45:31

标签: c# winforms unicode console-application unicode-string

我想打印那种character,但我不明白,我认为c#支持unicode。

我解决它的方式:

label3.Text = "\u1F6B5";

这不是唯一不起作用的符号。

谢谢。

3 个答案:

答案 0 :(得分:6)

  label3.Text = "\u1F6B5";

\u转义只需要4个十六进制数字,你试图使用5.所以你最终会得到一个包含两个字符的字符串,'\ u1F6B'和'5'。看起来像“Ὣ5”,而不是你想要的。

使用来自高位平面的代码点(代码> = 0x10000)需要大写U才能正确编码为字符串文字。修正:

  label3.Text = "\U0001F6B5";

机器还需要包含字形的字体。当你看到一个矩形时,你会知道它丢失了。

答案 1 :(得分:1)

我今天遇到了这个问题。我发现 CompatibleTextRendering 属性会影响是否显示 Unicode 符号。

查看图片 here 它如何影响 Label 和 LinkLabel 控件。

我使用 Segoe UI Emoji 字体解决了这个问题。

答案 2 :(得分:0)

我相信您还需要选择支持标签的unicode字符的字体。尝试像Arial Unicode MS这样的东西(或者查看this guideline以获取支持该精确unicode字符的字体...例如the Segoe UI Symbol font)。