的字符串改變我已經以下代碼:java的UTF-8編碼字節爲奇數個字符
public static void main(String args[]) throws UnsupportedEncodingException {
System.setProperty("file.encoding", "gbk");
String name = "こんにちわ";
String copy = new String(name.getBytes("utf-8"));
byte[] b1 = name.getBytes("utf-8");
byte[] b2 = copy.getBytes();
System.out.println("b1: " + Arrays.toString(b1));
System.out.println("b2: " + Arrays.toString(b2));
}
控制檯輸出是:
B1:[-29,-127, - 109,-29,-126,-109,-29,-127,-85,-29,-127,-95,-29,-126,-113]
b2:[-29,-127 ,-109,-29,-126,-109,-29,-127,-85,-29,-127,-95,-29,-126,]
注意新字符串中最後一個字節不同。
現在,如果我使用輸入String name = "こんにち";
(僅4日本漢字),相反,它更改爲:
B1:[-29,-127,-109,-29,-126 ,-109,-29,-127,-85,-29,-127,-95]
b2:[-29,-127,-109,-29,-126,-109,-29,-127 ,-85,-29,-127,-95]
這次字節完全一樣。
我用java jdk1.6.0_45的窗口。默認字符集是gbk
。 我遇到過一些編碼限制嗎?
什麼是您的設置默認字符集? – RealSkeptic
我在兩行上都得到''-113「',在窗口上使用1.6.0_45。 – Keppil
@RealSkeptic默認字符集是gbk – oyss