英镑和欧元符号不显示在窗口形式,而是显示一个J
本文关键字:显示 一个 符号 窗口 | 更新日期: 2023-09-27 18:09:45
我们编写了一个在两台相等的机器上表现不同的程序。在一台机器上,它用英镑符号显示价格。我们根据一个表来设定符号。{"£","€","€"};两台机器都配置了相同的语言和键盘设置。我们不依赖于货币设置,但即使如此,两台机器上的货币设置是相同的。但在一台机器上,这个符号被"翻译"成字母J。我们使用c# 2010在windows窗体上创建了一个标签,想知道是什么导致的吗?
更新我使用相同的字体和相同的方法来显示它。两台机器都运行Win7 sp1不仅是英镑符号,欧元符号也用J表示。
多亏了我的Google-fu,我想出了一些东西,但我只能在我的一台机器上测试它,所以我不确定它是否适合你,但无论如何请尝试一下。
var encoder = System.Text.Encoding.GetEncoding(858); //also tried with 437
byte[] c = new byte[] { 156 };
Console.WriteLine(encoder.GetString(c));
在我的机器上打印出"£"。
取自这个线程:http://social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/dccd38e0-6f9e-4fb2-b114-bc44128ca634/
我们在网站上也遇到过类似的问题(我们自己的网站和其他知名网站的网站),其中英镑符号显示为字母j。我们还注意到,与此同时,文本在不应该出现的情况下出现了粗体和斜体。
经过大量调查发现,我们遇到的大多数机器上安装的Helvetica字体都有问题,有两种可能的解决方案:
- 如果你有控制机器删除"Helvetica粗体斜","Helvetica粗体"answers"Helvetica斜"字体("Helvetica Regular"似乎工作良好)。
- 在你的应用程序/网站中使用不同的字体。