我有一些包含日文字符的目录/文件。如果我尝试读取一个文件名(而不是内容)包含(例如)一个ク,我会得到一个包含�的字符串。如果我尝试创建包含ク的文件/目录,则会出现一个包含?的文件/目录。
例如: 我使用以下命令列出文件。
例如: 我使用以下命令列出文件。
File file = new File(".");
String[] filesAndDirs = file.list();
文件和目录数组现在包含了这些特殊字符的目录。字符串现在只包含����。看起来没有什么可解码的,因为a getbytes对于文件名中的每个字符甚至不同的字符都只显示“-17 -65 -67”。
我使用的是MacOS 10.8.2 Java 7_10和Netbeans。
有什么想法吗?
提前感谢您:)
String.getBytes()
提供了编码(你应该始终这样做)。你应该输出每个文件名中每个字符的UTF-16代码点,以查看实际情况。此外,在尝试创建文件时,也不清楚你是如何获取输入数据的。 - Jon SkeetgetBytes
返回的似乎是有效的 UTF8。 - John Dvorak