Java 8 UTF-8 编码问题(java 错误?
使用 UTF-8 编码创建字符串时存在不一致。
运行此代码:
public static void encodingIssue() throws IOException {
byte[] array = new byte[3];
array[0] = (byte) -19;
array[1] = (byte) -69;
array[2] = (byte) -100;
String str = new String(array, "UTF-8");
for (char c : str.toCharArray()) {
System.out.println((int) c);
}
}
在Java 1.8.0_20(及更早版本)上,我们有结果
65533
在Java 1.7和1.6上,我们得到了正确的结果:
57052
您是否遇到过此错误?是否有解决此问题的方法?
这种不一致也体现在Shift_JIS,JIS_X0212-1990,x-IBM300,x-IBM834,x-IBM942,x-IBM942C,x-JIS0208,但显然UTF-8更为紧迫。