java - String.getBytes ("ISO-8859-1") 在 OS X 上给我 16 位字符

标签 java macos unicode ascii

使用 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/

相关文章:

java - 从 Arraylist 返回对象

java - Tomcat 中 context.xml 的正确 META-INF 目录位置是什么?

python - 在 Mac OS X、Windows 上获取 Python 中的根对话框?

macos - opencv 可以与 Objective C 混合编译以进行 OS X 应用程序开发吗?

C++字符串类型混淆

java - 使用时区信息转换日期时间(以毫秒为单位)

java - 维护数据结构以在 ArrayList 的链接上具有值

javascript - 在 ngOption <select> 中使用 unicode 符号

macos - 使用 OpenGL 在 Mac OSX El Capitan 上渲染 Glitch

java - HtmlCleaner 解析非英文网站时返回 "???"