0
我需要的字符Unicode字符轉換成一個byte []表示,並保存到Srting,例如Unicode轉換爲UTF-8的byte [],並保存成字符串(Java)的
U+1F601 -> \xF0\x9F\x98\x81
我沒有想法我怎麼能做到這一點的.. 任何人有想法?謝謝
我需要的字符Unicode字符轉換成一個byte []表示,並保存到Srting,例如Unicode轉換爲UTF-8的byte [],並保存成字符串(Java)的
U+1F601 -> \xF0\x9F\x98\x81
我沒有想法我怎麼能做到這一點的.. 任何人有想法?謝謝
int[] codepoints = { 0x1F601 }; // U+1F601
String s = new String(codepoints, 0, codepoints.length);
byte[] bytes = s.getBytes(StandardCharsets.UTF_8); // As UTF-8 (Unicode) bytes
System.out.println(Arrays.toString(bytes));
所以一個第一coposes Unicode碼點轉換爲Java字符串。 Java字符串保存Unicode。 當需要字節時,比如用UTF-8表示 - 一種Unicode表示形式 - 則必須指出字節將在的字符集。
有了這段代碼我有[-16,-97,-104,-127]作爲結果..沒有,我想..沒有? – colymore 2014-09-29 12:41:04
-16 = F0十六進制,-97 = 256-97 = 159 = 160-1 =十六進制A0-1 = 9F。所以沒關係。 – 2014-09-29 12:46:58