例如,我需要的文件在此文件路径中找到,它将作为参数传递:
"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
请告诉我如何阅读其他字符,这确实有很大帮助。谢谢!
答案 0 :(得分: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对象,则可以将其转换为任何字符集。