簡體   English   中英

如何將中文字符串轉換為字節數組,將字節數組轉換為中文字符串?

[英]how to convert chinese string to byte array and byte array to chinese string?

我正在編程將中文字符串轉換為字節數組並將字節數組轉換為中文字符串。 我知道使用 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}

但我不太清楚。 請幫我。 謝謝

我不確定你從哪里得到中文字符在 UTF-8 中都是 2 個字節的斷言。

中是U+4E2D,國是U+56FD。 如果您查看每個代碼點在 UTF-8 中占用多少字節的摘要,您會看到 U+0800 和 U+FFFF(含)之間的代碼點需要 3 個字節。 這里的兩個字符都屬於這個范圍。

例如,中 (U+4E2D) 編碼為 11100100 10111000 10101101(你可以 在這里玩 UTF8 到二進制轉換),而這三個字節實際上轉換為 -28、-72 和 -83 的二進制補碼(你可以用十進制到二的發揮互補這里)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM