英镑和欧元符号未显示在窗体中而是显示J

时间:2013-04-17 14:22:03

标签: c# windows winforms currency symbols

我们编写了一个程序,在两台相同的机器上表现不同。 在一台机器上用英镑符号显示价格。我们根据列表设置符号,例如     {“£”,“€”,“€”}; 两台计算机都配置了相同的语言和键盘设置。 我们不依赖于货币设置,但即便如此,两台机器上的货币设置也是相同的。 但是在一台机器上,符号被“翻译”到字母J. 我们在Windows窗体上有一个标签,使用C#2010并想知道是什么原因导致它?

更新 我使用相同的字体和相同的方法来显示它。 两台机器都运行Win7 sp1 它不仅与英镑符号一起,欧元符号也显示为J ???

2 个答案:

答案 0 :(得分:0)

我想出了一些非常棒的Google-fu,但是我只能在我的一个mahcine上测试它,所以我不确定它是否能为你做到,但无论如何都要试一试

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/

答案 1 :(得分:0)

我们在网站(我们自己和其他来自其他成熟网站的网站)上遇到了类似的问题,其中磅(£)符号显示为字母J.我们也注意到,同时文本大胆而倾斜不应该。

经过大量调查后发现,我们遇到的大部分机器都与机器上安装的Helvetica字体有问题,有两种可能的解决方案:

  1. 如果您可以控制机器,请删除“Helvetica Bold Oblique”,“Helvetica Bold”和“Helvetica Oblique”字体(“Helvetica Regular”似乎工作正常)。
  2. 在您的应用程序/网站中使用其他字体。