Java欧元符号转换为货币符号

标签 java spring pdf itext number-formatting

我正在尝试使用 NumberFormat 将 double 变量格式化为价格字符串(例如:€59,00)

这是我写的方法:

private String formatValue (double price){
  NumberFormat f = NumberFormat.getCurrencyInstance(Locale.ITALIAN);
  String value = f.format(new BigDecimal(price));
  return value;
}

然后,我使用 iText 库将返回值写入 pdf 字段。

form.setField("value", formatValue(price));

现在,当我在浏览器的 pdf 查看器(如 chrome 或 firefox)中打开生成的 pdf 时,该字段如下所示: €59,00

但是当我在 adobe reader 中打开它,或者我尝试进行物理打印时,它看起来像 €59,00。

如果我在调试中打开变量 value,我会看到格式为 ¤59,00 的字符串。

我做错了什么?


我解决了使用 DecimalFormat 而不是 NumberFormat,并以 utf-8 编码传递 € 符号(mwhs 的输入 [谢谢])

private String formatValue (double price){
  DecimalFormat formatter = new DecimalFormat("\u20ac0.00");   
  String value = formatter.format(price);
  return value;    
}

最佳答案

您可能正在使用单独的编码。浏览器可能正在使用 UTF-8,而 adobe reader 可能正在使用 ANSI 或 UTF 的其他本地化版本。 (请注意,这些不一定是他们使用的编码,只是一个示例)因此请检查您的偏好,然后重试。

关于Java欧元符号转换为货币符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19430250/

相关文章:

Java如果列表中的数字超过x

java - 覆盖在非 Activity 类中不起作用

java - 如何在 Spring boot 1.5.2 中终止 Hibernates 数据库连接?

Java 将 XML 文档呈现为 PDF

javascript - 在 acrobat PDF 表单中使用 java 脚本更改字段数字样式

java - MapReduce 程序中的洗牌步骤是否与映射并行运行?

java - 在没有 GUI 的情况下启动 JavaFX 应用程序线程

java - Spring MessageSource 中验证消息的动态表达式变量

java - 为什么 bean 中的环境看不到集成上下文中源的属性?

Python合并pdf而不压缩