【问题标题】:Unicode special character not displaying in labelUnicode 特殊字符未显示在标签中
【发布时间】:2015-10-19 20:52:01
【问题描述】:

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

我的解决方法:

label3.Text = "\u1F6B5";

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

谢谢。

【问题讨论】:

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


    【解决方案1】:
      label3.Text = "\u1F6B5";
    

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

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

      label3.Text = "\U0001F6B5";
    

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

    【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 为了让事情顺利进行,我必须以 189 欧元(209 美元)的价格购买该字体fonts.com/de/font/monotype/arial-unicode/ms-regular,因为我无法在设计器中选择它(在“字体”->“名称”下)?这是相当多的......对于一些测试。我无法选择/找到“Symbol 字体”,所以我尝试了“Symbol”-font,但它不起作用。
      • 您应该可以通过代码设置字体(如果安装了字体,我相信通过设计器是可能的)。我确信那里有支持这个 unicode 字符的免费字体,但我不肯定......会研究更多
      • 试试这个链接:fileformat.info/info/unicode/font/… 它应该告诉你你安装的支持 unicode 字符的本地字体。
      • 可以通过这样的代码设置("label3.Font = new Font("Symbola font", label3.Font.Size); label3.Font = new Font("Arial Unicode MS", label3 .Font.Size);"),在我的机器上不起作用。默认情况下,我通过查看列表(fileformat.info/info/unicode/font/…) 选择了“Microsoft Sens Serive”(在注释掉上述代码之后),它告诉我必须使用“1F6B5”,但这是我以前的,但没有成功..
      • 我尝试下载符号并通过代码设置它显示了一个完全不同的字符(错误的字符)。然后,如果我尝试通过设计师设置它,它会说它不是真正的字体。奇怪。
      猜你喜欢
      • 1970-01-01
      • 2011-12-28
      • 1970-01-01
      • 1970-01-01
      • 2016-05-14
      • 2012-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多