中文文件夹上 file.listFiles() 的编码问题

Encoding issue for file.listFiles() on chinese folders

提问人:Gleichmut 提问时间:1/24/2017 更新时间:1/25/2017 访问量:233

问:

我做了一项研究,以发现中文文件夹的文件名错误,但没有运气。在返回文件路径中包含无法识别符号的文件列表时调用 API 调用中文符号。有趣的是,对于某些文件,中文符号是可识别的,而其他文件则无法识别。下面是示例:listFilesfile

http://pastebin.com/2esW80BJ

你知道为什么会这样吗?幕后 listFiles 应该使用 UTF-8,它应该正确处理中文字符。确实如此,但在某些情况下,存在无法识别的符号。

java 安卓

评论

0赞 MC Emperor 1/24/2017
应弃用外语。;-)无论如何,汉字在文件系统中是如何编码的?
0赞 Gleichmut 1/24/2017
它是 Android,我假设一切都是 UTF-8 unix.stackexchange.com/questions/2089/......
0赞 MC Emperor 1/24/2017
但是,如果文件系统是 NTFS——我不知道这是否可能,但我假设它是——文件名被编码为 UTF-16,请参阅这篇文章。您使用的是外部存储卡吗?
0赞 Gleichmut 1/24/2017
不,没有外部存储。该设备是联想pad2
0赞 MC Emperor 1/24/2017
这些字符 ( ) 应该是什么样子的?

答:

0赞 Gleichmut 1/25/2017 #1

就我而言,它是垃圾作为输入 - 有不同的模型并且昨天晚上没有注意到差异