C# windows窗体中未显示英镑和欧元符号,而是显示J

C# windows窗体中未显示英镑和欧元符号,而是显示J,c#,windows,winforms,currency,symbols,C#,Windows,Winforms,Currency,Symbols,我们编写了一个程序,在两台相同的机器上表现不同。 在一台机器上显示的是带有英镑符号的价格。我们根据列表设置符号,例如:。 { £, €, € }; 两台机器都配置了相同的语言和键盘设置。 我们不依赖于货币设置,但即使如此,两台机器上的货币设置也是相同的。 但在一台机器上,符号被翻译成字母J。 我们在windows窗体上有一个标签,使用的是C 2010,我们想知道是什么导致了它 更新 我使用相同的字体和方法来显示它。 两台机器都运行Win7 sp1 它不仅有英镑符号,还有欧元符号显示为J???多亏

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

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

多亏了我的谷歌fu,我想出了一些东西,但我只能在我的一本mahcine上测试它,所以我不确定它是否能帮你,但还是试试看

var encoder = System.Text.Encoding.GetEncoding(858); //also tried with 437
byte[] c = new byte[] { 156 };
Console.WriteLine(encoder.GetString(c));
这个在我的机器上打印出来


摘自此帖:

我们自己的网站和其他知名网站的网站也存在类似问题,其中英镑符号显示为字母J。我们还注意到,与此同时,文本粗体且倾斜,而本不该如此

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

如果您可以控制机器,删除Helvetica粗体斜体、Helvetica粗体和Helvetica斜体字体Helvetica Regular似乎可以正常工作。 在应用程序/网站中使用不同的字体。
你用的是同一种字体吗?你是怎么写字符串的?您设置了编码参数吗?我使用相同的字体,用记事本检查此字体是否包含符号有关编码值的更多信息:我们直接在代码中写入欧元和英镑符号。这在我们开发的机器上运行得很好,但我们在为其构建软件的客户端pc上遇到了这个问题是的,我理解。不要直接键入英镑符号,而是尝试使用我上面输入的代码。c是英镑符号,因此可以像Label1.Text+=encoder.GetStringc一样在标签文本的末尾添加英镑符号。