2012-08-28 136 views
0

在我的程序中,我將字符流轉換爲字符串作爲輸入。但是當字節流包含帶有ë的單詞時,該字母會轉換爲%。我該如何解決?trema顯示爲百分比符號

THX

+0

你如何轉換字節流......它是什麼字符編碼與你用什麼字符編碼讀取字節字符? – Charlie

+0

我只是將我的bytearray傳遞給新的String(byte [])。我沒有明確指定字符編碼。 –

+2

新字符串(字節[])將在解碼字節時使用平臺的默認字符集。什麼字符集用於編碼字節流? – Mark

回答

0

爲了編碼這些字符,

轉換字符串對象到UTF-8,調用getBytes方法,並指定相應的編碼標識符作爲參數。 getBytes方法返回UTF-8格式的字節數組。要從非Unicode字節數組創建String對象,請使用編碼參數調用String構造函數。請參考:

try { 
    byte[] utf8Bytes = original.getBytes("UTF8"); 
    byte[] defaultBytes = original.getBytes(); 

    String roundTrip = new String(utf8Bytes, "UTF8"); 
    System.out.println("roundTrip = " + roundTrip); 
    System.out.println(); 
    printBytes(utf8Bytes, "utf8Bytes"); 
    System.out.println(); 
    printBytes(defaultBytes, "defaultBytes"); 
} 
catch (UnsupportedEncodingException e) { 
    e.printStackTrace(); 
}