Java拆分ISO-8859-1带“断开的垂直条”的字符串

时间:2016-04-02 11:36:31

标签: java string utf-8 split iso-8859-1

我从第三个系统读取了一个ISO-8859-1编码的字符串。我必须将此字符串与字符|分开。该字符在ISO-8859-1中具有值166。 以下代码不起作用,因为Java中的值(UTF-8)为| 65533。

String [] parts = isoString.split("¦");

我被困了......我怎么解决这个问题? 感谢

2 个答案:

答案 0 :(得分:1)

工作代码:

String s = new String(new byte[] {'a', 'b', (byte) 166, 'c', 'd'}, 
                      StandardCharsets.ISO_8859_1);
String[] split = s.split("\u00a6");
System.out.println("split = " + Arrays.toString(split));
// prints split = [ab, cd]

答案 1 :(得分:0)

首先需要properly decode your ISO-8859-1 string into a Unicode representation,以便您可以使用您提供的Unicode字符串文字(|)将其拆分 - 假设您当然正在使用Unicode编码编译程序。