使用 Java 6 从字符串中获取 8 位字符:
System.out.println(Arrays.toString("öä".getBytes("ISO-8859-1")));
给我,在 Linux 上:[-10, 28] 但是 OS X 我得到:[63, 63, 63, -89]
使用新的 nio CharSetEncoder 类时,我似乎得到了相同的结果。我究竟做错了什么?还是苹果的错? :)
最佳答案
我通过将源文件保存为 UTF-8,然后告诉编译器它真的是 MacRoman,设法重现了这个问题:
javac -encoding MacRoman Test.java
我原以为 javac
在 OSX 上会默认为 UTF-8,但也许不是。或者,也许您正在使用 IDE 而它默认为 MacRoman。无论如何,您都必须改用 UTF-8。
关于java - String.getBytes ("ISO-8859-1") 在 OS X 上给我 16 位字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2235365/