2015-11-02 160 views
-1

我正在編程將中文字符串轉換爲字節數組和字節數組轉換爲中文字符串。 我知道在使用UTF-8編碼時,中文字符串返回2個字節。 但它在我的電腦中返回3個字節​​。如何將中文字符串轉換爲字節數組和字節數組爲中文字符串?

//test code 

String result = System.getProperty("file.encoding"); // UTF-8 

String temp = new String("中國"); 

byte[] bytes = temp.getBytes(); 

結果:

字節= {-28,-72,-83,-27,-101,-67}

但我don'k熟悉。 請幫幫我。謝謝

+0

'我知道什麼時候使用UTF-8編碼,中文字符串返回2個字節的來源? – njzk2

回答

1

我不知道你在哪裏得到斷言,中文字符都是UTF-8中的2個字節。

中是U + 4E2D,國是U + 56FD。如果您查看how many bytes each code point takes in UTF-8的摘要,您會看到U + 0800和U + FFFF(含)之間的代碼點需要3個字節。這裏的兩個角色都屬於這個範圍。例如,中(U + 4E2D)編碼爲11100100 10111000 10101101(您可以玩UTF8-to-binary轉換here),而這三個字節實際上轉換爲-28,-72和-83二進制補碼(你可以用十進制補碼來補碼here)。

+0

感謝您的回答。你幫我 –

相關問題