-1

例如,我需要的文件在这个文件路径中找到,它将作为参数传递:

"C:\Users\user.name\docs\jap\あああいいいうううえええおおおダウンロード\filename.txt"

我用这段代码来解码字符:

String new_path = new String(args[0].getBytes("Shift_JIS"), StandardCharsets.UTF_8);
System.out.println(new_path);

但是,输出是:

C:\Users\user.name\docs\jap\あああい�?�?�?�?�?えええおおお�?ウンロード\filename.txt

有些字符没有被正确解码。我已经把控制台的文本编码和编码改成了UTF-8,但是还是不行。

但如果我只是定期打印它,它会显示得很好。

System.out.println("C:\\Users\\user.name\\docs\\jap\\あああいいいうううえええおおおダウンロード\\filename.txt");

显示:

C:\Users\user.name\docs\jap\あああいいいうううえええおおおダウンロード\filename.txt

请告诉我如何阅读其他字符,这真的很有帮助。谢谢!

4

1 回答 1

0
public static void main(String[] args) throws UnsupportedEncodingException {
    // it is your code
    String newPath = new String(args[0].getBytes("Shift_JIS"), StandardCharsets.UTF_8);
    System.out.println(newPath);
    // instead of your code
    newPath = args[0];
    System.out.println(newPath);
}

也许,你可以显示“あああいいいうううえええおおおダウンロード”。

如果您使用字节数组和相应的字符集创建 String 对象,则可以将其转换为任何字符集。

于 2019-01-18T10:13:16.820 回答