Big5轉UTF8的方式在數年前就自O'Reilly的Java IO一書學會了,但至今還是犯下相似的錯誤。本來以為可以藉用StringReader將Big5編碼的String轉成Stream再轉換到UTF8,甚至妄想以為不須指定來源編碼。事實上還是要中規中矩的把String轉成Byte Array,再轉成Stream時指定其來源編碼。
public static void main(String[] args) throws Exception // new InputStreamReader(new ByteArrayInputStream(str.getBytes(), "Big5")); //字串 |
Survey期間也發現幾個有趣及易犯錯的地方。比如XML若指定UTF-8編碼:<?xml version="1.0" encoding="UTF-8"?>,不能用UTF8。還有以下三種取得系統編碼方式,結果還真的都不太一樣:
logger.debug("Encoding:{}", System.getProperty("file.encoding")); // ISO8859-1 |
留言列表