2014-09-24 104 views
0

我正在使用new String(byte[], Charset)創建一個字符串對象,其中Charset = UTF8byte[]被編碼爲ISO-8859-1。 我已經用正常字符進行了測試,它工作。但不清楚它是否會造成任何問題。使用字節[]和字符集構造函數創建字符串對象

請提出建議。

new String(byteArray,Charset.forName("UTF-8")); 
+2

爲什麼不使用正確的字符集呢? – aioobe 2014-09-24 09:56:08

+0

Sooo,你用UTF-8解碼ISO-8859-1,並想知道爲什麼它顯示格式不正確?我錯過了什麼嗎? – Jitsu 2014-09-24 09:57:29

+0

你用一把鑰匙打開它不屬於的鎖嗎?這就是你在這裏做的。 – ares 2014-09-24 10:00:48

回答

1

閱讀有關構造函數的API文檔。據說,即使你得到一個損壞的字節數組,你也不會得到任何問題。

公共字符串(字節[]字節,字符集的字符集)

由指定使用 指定字符集的字節數組解碼構造一個新的字符串。新字符串的長度是字符集 的函數,因此可能不等於字節 數組的長度。 此方法始終用此字符集的默認替換字符串替換格式錯誤的輸入和不可映射字符序列。當需要對解碼過程進行更多控制時,應使用CharsetDecoder類