我从第三个系统读取了一个ISO-8859-1编码的字符串。我必须将此字符串与字符|分开。该字符在ISO-8859-1中具有值166。 以下代码不起作用,因为Java中的值(UTF-8)为| 65533。
String [] parts = isoString.split("¦");
我被困了......我怎么解决这个问题? 感谢
答案 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编码编译程序。