2013-07-17 31 views
0

我與字符集皈依了一個問題:Android的字節串字符集

我已得到UDP服務器的消息,我得到這樣的數據:

byte[] adress= new byte [42]; 

後,我試圖顯示的TextView :

String str_adress= new String(adress,"UTF-8"); 

而不是「ő」我只是「?」

我該如何解決這個問題?

+1

好吧..看起來你的字節數組源不是UTF-8編碼的。我想你應該嘗試找出正確的編碼。 – iBecar

+0

我也試過這個 'String str_adress = new String(address,「ISO-8859-1」);' – meklod400

+0

試試這個'String newString = new String(oldString.getBytes(「UTF-8」), UTF-8「);' 也許http://stackoverflow.com/questions/8854106/java-string-encoding-utf-8這將有助於 – iBecar

回答

0

ő的UTF-8字節是c5 91

由於

Log.v(TAG, new String(new byte[] { (byte) 0xc5, (byte) 0x91 }, "UTF-8")); 

輸出

ő 

我認爲你在錯誤的地方的問題看起來。它來自其他地方,比如讀取udp消息。

+0

我剛剛63沒有c5 91.我從服務器得到一個字節流,所以我只是讀取緩衝區。 – meklod400

+2

@ meklod400:63 ??這是'?'的ASCII碼(和Unicode碼點)!所以**服務器**已經發送了一個'?',並且*你在客戶端上做的任何事情都將把它變成別的東西。修復服務器! –