我試圖格式化爲一個字符串,價格雙變量(例如:€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