我有一个需要显示货币符号的 Java 应用程序。我在 Linux(Ubuntu) 服务器上运行。
在 Linux 服务器上 LANG=en_GB.UTF-8
下面的代码测试了这个问题:
import java.util.Currency;
import java.util.Locale;
import java.text.NumberFormat;
public class SymbolTest
{
public static void main(String[] args)
{
System.out.println("Hardcoded Unicode Currency Symbol for GBP [\u00A3] ");
System.out.println("Currency Symbol for GBP with Locale [" + Currency.getInstance(Locale.UK).getSymbol() + "]");
System.out.println("Currency Symbol for US with Locale [" + Currency.getInstance(Locale.US).getSymbol() + "]");
System.out.println("Currency Symbol for FRANCE with Locale [" + Currency.getInstance(Locale.FRANCE).getSymbol() + "]");
}
}
给出输出:
GBP £ 的硬编码 Unicode 货币符号
带有区域设置的 GBP 货币符号 [£]
带区域设置的美国货币符号 [USD]
带有区域设置的法国货币符号 [â¬]
我怀疑这是 Ubuntu 服务器上的语言环境或语言问题。 我应该在 Linux 服务器上安装/配置什么才能显示货币符号?
最佳答案
您的程序正在正确地尝试输出 UTF-8,但您的终端显然不知道它应该处于 UTF-8 模式。所以你的终端在这里有问题。您使用的是什么终端?
尝试将程序的输出重定向到一个文件并使用支持 UTF-8 的编辑器打开该文件以验证输出是否正确。
关于java - Linux 服务器上缺少货币符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4967430/