我在@Esailija回答我的问题的评论中读到:
ISO-8859-1是唯一完全保留原始二进制数据,具有精确字节<->码点匹配的编码
我还在@AaronDigulla的答案中读到:
在Java中,ISO-8859-1(又名ISO-Latin1)是一种1:1映射
我需要一些关于这个的见解。这将会失败(如此处所示here):
// \u00F6 is ö
System.out.println(Arrays.toString("\u00F6".getBytes("utf-8")));
// prints [-61, -74]
System.out.println(Arrays.toString("\u00F6".getBytes("ISO-8859-1")));
// prints [-10]
问题
- 我承认我不太明白-为什么它不能在上面的代码中获取字节?
- 最重要的是,这个(保留字节行为的ISO-8859-1)是在哪里指定的 - 链接到源或JSL会很好。它是唯一具有此属性的编码吗?
- 这与ISO-8859-1是默认设置有关吗?
另请参见此问题以获取其他字符集的良好反例。
byte b = -10; System.out.println(Integer.toHexString(b & 0xFF));
- JB Nizetf6
-"\u00F6"
包含的字节是什么?[-61,-74]还是[-10]? - Mr_and_Mrs_D