我试图格式化为一个字符串,价格双变量(例如:€59,00)使用的NumberFormatJava的欧元符号转换为货币辛博尔
这里是我写的方法:
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查看器中打开生成的PDF(如Chrome或Firefox),现场看起来像: €59.00
,但是当我在Adobe Reader中打开它,或者我尝试物理打印,看起来像 ¤59,00。
如果我在调试中打开变量的值,我看到格式为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](http://www.joelonsoftware.com/articles/Unicode.html) – mwhs
感谢您的输入,我解决了 – dgiaig