如何在C/.NET winform中看到这个特殊字符?

如何在C/.NET winform中看到这个特殊字符?,.net,winforms,.net,Winforms,这里可以看到一个特殊的人物 我有正确的字体,我甚至可以在firefox中复制/粘贴它。我可以在firefox中看到文本而不使用图像。但当我将其粘贴到winforms中时,我不会。我看到两个盒子,里面有什么?里面的每一个。只有一个字母。奇怪的是,我可以将文本复制出来粘贴到firefox中,并正确地看到它。注意:我确保在firefox中复制/粘贴常规文本,以确保我没有重新绘制我最初复制的内容 我将字体设置为textBox3.font=new-Fontsymbola,12;symbola具有查看该特殊

这里可以看到一个特殊的人物

我有正确的字体,我甚至可以在firefox中复制/粘贴它。我可以在firefox中看到文本而不使用图像。但当我将其粘贴到winforms中时,我不会。我看到两个盒子,里面有什么?里面的每一个。只有一个字母。奇怪的是,我可以将文本复制出来粘贴到firefox中,并正确地看到它。注意:我确保在firefox中复制/粘贴常规文本,以确保我没有重新绘制我最初复制的内容

我将字体设置为textBox3.font=new-Fontsymbola,12;symbola具有查看该特殊字符所需的字体。事实上,在我下载它并右键单击ttf文件安装之前,firefox并没有正确显示字符。从那以后我重新启动了我的电脑

如何让winform正确显示字符?

它适合我:

private void Form1_Load(object sender, EventArgs e)
{
  button1.Font = new Font("symbola", 16); 
  button1.Text = "\U0001F4A9";
}
2备注:

该字符不在BMP中:无法使用单个16位字表示。用UTF16的说法,它是一个代理对。注意上面的源代码中需要的特殊编码。此外,此表示在WinForms设计器属性中不起作用。我必须在班级代码文件中指定文本。 我也无法在WinForms designer属性中分配字体:它抱怨字体不是真正的类型,看起来是这样。同样,在代码中指定字体也有效。 FWIW,我的测试是在Win7x64下使用VS2008和.NET3.5完成的

编辑:我还在VS2010/.NET 4和.NET 3.5下对其进行了测试:效果很好

private void Form1_Load(object sender, EventArgs e)
{
  button1.Font = new Font("symbola", 16); 
  button1.Text = "\U0001F4A9";
}
2备注:

该字符不在BMP中:无法使用单个16位字表示。用UTF16的说法,它是一个代理对。注意上面的源代码中需要的特殊编码。此外,此表示在WinForms设计器属性中不起作用。我必须在班级代码文件中指定文本。 我也无法在WinForms designer属性中分配字体:它抱怨字体不是真正的类型,看起来是这样。同样,在代码中指定字体也有效。 FWIW,我的测试是在Win7x64下使用VS2008和.NET3.5完成的


编辑:我还在VS2010/.NET 4和.NET 3.5下对其进行了测试:效果很好

您可以尝试使用RichTextBox。我在常规文本框中使用Unicode时遇到间歇性问题,即使所有字体都安装正确。当您从代码中设置它时,它几乎总是有效的,但有时在交互性方面会出现问题。无论如何,我永远不知道它的原因,但是RichTextBox通常在这些情况下工作。

您可以尝试使用RichTextBox。我在常规文本框中使用Unicode时遇到间歇性问题,即使所有字体都安装正确。当您从代码中设置它时,它几乎总是有效的,但有时在交互性方面会出现问题。无论如何,我永远都不知道它的原因,但是RichTextBox通常在这些情况下工作。

真的吗?我正在使用visual Studio 2010和.NET 3.5,但这不起作用。我试过按钮和文本框。我在代码中实现了这一点,如您的示例所示。我使用的是Win7 64位。我想知道是否有人能确认上面的工作和他们的操作系统,我在2010年也尝试过,但没有工作。你从哪里得到字体文件的?我这里有我的你在用什么操作系统?我想你不想通过电子邮件把二进制文件发给我,看看它在我的机器上是否工作?我的电子邮件在我的个人资料中。你在.NET 3.5上。好的,VS2010/.NET3.5/Win7 x64适合我。我会给你发exe的。yers,我也从那里得到了字体真的吗?我正在使用visual Studio 2010和.NET 3.5,但这不起作用。我试过按钮和文本框。我在代码中实现了这一点,如您的示例所示。我使用的是Win7 64位。我想知道是否有人能确认上面的工作和他们的操作系统,我在2010年也尝试过,但没有工作。你从哪里得到字体文件的?我这里有我的你在用什么操作系统?我想你不想通过电子邮件把二进制文件发给我,看看它在我的机器上是否工作?我的电子邮件在我的个人资料中。你在.NET 3.5上。好的,VS2010/.NET3.5/Win7 x64适合我。我会把exe寄给你。yers,我也从那里得到了字体好吧,我试过了。还是没看到我在serge上的评论answer@acidzombie24是的,这在我这边也行。我和你从同一个地方得到的字体。它可以在RichTextBox和TextBox中工作,都是通过像Serge的示例一样手动设置和复制/粘贴来实现的。我听说一些UTF字体由于区域设置而呈现出奇怪的效果,但我认为如果是这样的话,它会在整个系统范围内呈现出来。谢谢你的电子邮件。它不能正常显示!我检查了我的地区和它的英语美国。我不。。。懂我的系统出了什么问题!至少我编程对吗?无论如何,谢谢并接受!好的,我试过了。还是没看到我在serge上的评论answer@acidzombie24是的,这在我这边也行。我和你从同一个地方得到的字体。它同时在RichTextBox和TextBox中工作
,既可以像Serge的示例那样手动设置,也可以通过复制/粘贴。我听说一些UTF字体由于区域设置而呈现出奇怪的效果,但我认为如果是这样的话,它会在整个系统范围内呈现出来。谢谢你的电子邮件。它不能正常显示!我检查了我的地区和它的英语美国。我不。。。懂我的系统出了什么问题!至少我编程对吗?无论如何,谢谢并接受!