【发布时间】:2013-10-26 03:38:03
【问题描述】:
我正在尝试使用 NumberFormat 将双变量格式化为价格字符串(例如: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;
}
【问题讨论】:
-
您是否阅读过这篇关于 Unicode 和字符集的文章?它将帮助您更好地了解您的问题! http://www.joelonsoftware.com/articles/Unicode.html
-
感谢输入,我解决了
标签: java spring pdf itext number-formatting