我在使用包含以下字符串的文本文件时遇到了一些问题: Grandchamp乐-CH \ 303 \ 242teau
顺便说一句,这是维基百科页面的名称。两个asciis代表“â”我认为。
是否有任何软件可以轻松地将上面的字符串转换为 格朗德尚莱沙托 或者可能 Grandchamp乐-CH%C3%A2teau
我更喜欢java absed解决方案,但任何其他想法也是如此! 非常感谢任何建议或暗示!
答案 0 :(得分:2)
这是实现目标的一种轻微的方法:
final String name = "Grandchamp-le-Ch\\303\\242teau";
final Matcher m = Pattern.compile("\\\\(\\d{3})").matcher(name);
final StringBuffer out = new StringBuffer();
while (m.find()) m.appendReplacement(out, String.valueOf((char)parseInt(m.group(1), 8)));
m.appendTail(out);
final String decoded = new String(out.toString().getBytes(ISO_8859_1), UTF_8);
System.out.println(decoded);
工作原理:
代码将打印出来
Grandchamp-le-Château
答案 1 :(得分:-1)
你在这里:
String myString = "Grandchamp-le-Ch\303\242teau";
byte[] byteArray = myString.getBytes("ISO-8859-1");
String result = new String(byteArray, "UTF-8");
System.out.println(result);
打印:
Grandchamp-le-Château