我與字符集皈依了一個問題:Android的字節串字符集
我已得到UDP服務器的消息,我得到這樣的數據:
byte[] adress= new byte [42];
後,我試圖顯示的TextView :
String str_adress= new String(adress,"UTF-8");
而不是「ő」我只是「?」
我該如何解決這個問題?
我與字符集皈依了一個問題:Android的字節串字符集
我已得到UDP服務器的消息,我得到這樣的數據:
byte[] adress= new byte [42];
後,我試圖顯示的TextView :
String str_adress= new String(adress,"UTF-8");
而不是「ő」我只是「?」
我該如何解決這個問題?
ő
的UTF-8字節是c5 91
。
由於
Log.v(TAG, new String(new byte[] { (byte) 0xc5, (byte) 0x91 }, "UTF-8"));
輸出
ő
我認爲你在錯誤的地方的問題看起來。它來自其他地方,比如讀取udp消息。
我剛剛63沒有c5 91.我從服務器得到一個字節流,所以我只是讀取緩衝區。 – meklod400
@ meklod400:63 ??這是'?'的ASCII碼(和Unicode碼點)!所以**服務器**已經發送了一個'?',並且*你在客戶端上做的任何事情都將把它變成別的東西。修復服務器! –
好吧..看起來你的字節數組源不是UTF-8編碼的。我想你應該嘗試找出正確的編碼。 – iBecar
我也試過這個 'String str_adress = new String(address,「ISO-8859-1」);' – meklod400
試試這個'String newString = new String(oldString.getBytes(「UTF-8」), UTF-8「);' 也許http://stackoverflow.com/questions/8854106/java-string-encoding-utf-8這將有助於 – iBecar