的字符串改变我已经以下代码: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