【发布时间】:2016-04-02 11:36:30
【问题描述】:
我从第三个系统读取了一个 ISO-8859-1 编码的字符串。我必须用字符 ¦ 分割这个字符串。此字符在 ISO-8859-1 中的值为 166。 以下代码不起作用,因为 ¦ 在 Java (UTF-8) 中的值为 65533。
String [] parts = isoString.split("¦");
我被卡住了...我该如何解决这个问题? 谢谢
【问题讨论】:
-
根据en.wikipedia.org/wiki/…,这个字符在unicode中是U+00A6(十进制是166)。所以你可以简单地使用
.split("\u00a6") -
Java 中没有“ISO-8859-1 编码的字符串”之类的东西。所以我认为你真正的问题可能是你没有正确解码来自任何来源的字符串。但是我们不能说,因为你只显示了一行代码,没有上下文。
-
虽然也有可能您没有使用正确的编码编译程序,但您传递给
split()的字符串并不是您想的那样它是。在这种情况下,JB Nizet 的答案将起作用(它也是 imo 在任何程序中引用非 ASCII 字符的最佳方式)。
标签: java string utf-8 split iso-8859-1