java.nio.charset.Charset.forName (“utf8”).decode 。 缩略语
ED A0 80 ED B0 80
加入:
U+10000
java.nio.charset.Charset.forName (“utf8”).decode 。 并按顺序排列
F0 90 80 80
加入:
U+10000
现在这似乎告诉我,UTF-8编码计划将编码<条码>ED A0 80 ED B0< 80/code>和<条码>F0 90 80 80 80并入相同的单典代码。
然而,如果我访问。 https://www.google.com/search?query=%A0%ED%B0%<80/strong>。
我可以看到,这显然不同于。 https://www.google.com/search?query=%F90%80。
由于谷歌搜索正在使用UTF-8编码系统(如果我错的话,也更正我),
这表明,UTF-8没有将以下编码编码:ED A0 80 ED B0 80
和F0 90 80 80
归入相同的统一编码标准。
因此,我基本上想到,通过
Code:
public class Test {
public static void main(String args[]) {
java.nio.ByteBuffer bb = java.nio.ByteBuffer.wrap(new byte[] { (byte) 0xED, (byte) 0xA0, (byte) 0x80, (byte) 0xED, (byte) 0xB0, (byte) 0x80 });
java.nio.CharBuffer cb = java.nio.charset.Charset.forName("utf8").decode(bb);
for (int x = 0, xx = cb.limit(); x < xx; ++x) {
System.out.println(Integer.toHexString(cb.get(x)));
}
System.out.println();
bb = java.nio.ByteBuffer.wrap(new byte[] { (byte) 0xF0, (byte) 0x90, (byte) 0x80, (byte) 0x80 });
cb = java.nio.charset.Charset.forName("utf8").decode(bb);
for (int x = 0, xx = cb.limit(); x < xx; ++x) {
System.out.println(Integer.toHexString(cb.get(x)));
}
}
}