0

我写了一个命令行工具,string[] 的参数已经是 UTF-8 编码的。
示例:java -jar myTool.jar -x "Gesch\u00E4ft"

该字符串现在表示为“Gesch\u00E4ft”,我不知道如何将其解码回来。URIDecode/URLDecode/CharsetDecoder 不起作用。

String test = args[2];
URI uri = null;
try {
    uri = URI.create(test);

} catch (Exception e) {
    e.printStackTrace();
}

错误:原因:java.net.URISyntaxException:索引 5 处路径中的非法字符:Gesch\u00E4ft

4

1 回答 1

0

\uxxxx不是 URL 格式,它是 Java 格式。您可以使用 Properties.load 解码这些序列

    String s1 = "Gesch\\u00E4ft";
    Properties props= new Properties();
    props.load(new StringReader(s1));
    String s2 = (String)props.keySet().iterator().next();
于 2013-08-23T11:16:27.743 回答