Mac OS X 上的 ntfs 硬盘上带重音符号的文件名显示“没有该文件或目录”

Mac OS X 上的 ntfs 硬盘上带重音符号的文件名显示“没有该文件或目录”

我在 OSX El Capitan (10.11.3) 上插入了一个 NTFS 格式的外部硬盘。我无法读取一些带有“重音符号”的文件。

bash> ls
Document re´ponse - Partie 2.docx   Test métier.pdf

当我这样做时ls -l

bash> ls -l
ls: Test métier.pdf: No such file or directory
total 1600
-rwxr-xr-x  2 guillaumethomas  staff  323153  8 mar  2009 Document re´ponse - Partie 2.docx

我猜测编码存在问题,因为:

python> import os
python> os.listdir('.')
['Document re\xc2\xb4ponse - Partie 2.docx', 'Test me\xcc\x81tier.pdf']
python> map(lambda s: s.decode('Utf8'), os.listdir('.'))
[u'Document re\xb4ponse - Partie 2.docx', u'Test me\u0301tier.pdf']

两个文件名均采用 utf8 编码:

我最好的猜测是编码是造成所有这些混乱的根本原因。几个问题: - 您认为是这样吗? - 我该如何解决这个问题? - 我如何确定文件存在(filedu命令都出现No such file or directory错误)?

答案1

MacOS X 无法读取带有组合重音符号的文件名,如下所述:https://discussions.apple.com/thread/3545860?tstart=0

我不知道为什么。

我通过使用 python unicodedata normalize 函数修改 Linux 下的文件名来修复它:https://docs.python.org/2/library/unicodedata.html#unicodedata.normalize

相关内容