java - Linux 服务器上缺少货币符号

标签 java linux fonts currency

我有一个需要显示货币符号的 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/

相关文章:

java - IBM AppDOS.ConnectionClose 漏洞

java - 在 Java 中将两个值添加到 HashMap 中的键

python - 最小化到托盘,陷入循环,python gtk

java - 无法使用 iText 显示 unicode 0x0332

android - 某些 unicode 字符不会在某些设备上呈现

swift - 确定可移植 Swift 中的字符串边界框?

java - native 应用程序将字符串传递到网站的简单示例?

java - 我的 Firebase 没有为我的应用程序生成 token

c++ - UUID 和 uuid_t 数据类型在赋值后可以更改吗?

linux - 如何更改文件名的编码(linux,ext4)