修复 Python 中的乱码文件名?
Fixing a gibberish filename in Python?
一位朋友遇到了一堆重命名为乱码的文件的问题。它看起来像这样:
03-ñîáä-áøâì-ùîàì.mp3
什么时候应该是这样的:
03-סמבה-ברגל-שמאל.mp3
现在,文件数量庞大,所以他问我是否可以帮忙编写一个python脚本。我开始插手,但它就是不动。我的假设是它是 CP-1255(或 windows-1255
),显示为 utf-8
,所以我尝试:
fname.decode('utf-8').encode('windows-1255')
但是我遇到了 "can't encode characters" 错误。所以我接着尝试切换它们,还尝试了 latin-1
、windows-1252
、cp862
甚至 ISO-8859-8
。没有什么。
我该怎么办?编码一直让我感到困惑。我该如何处理?
我正在使用 python 2.7
你几乎猜对了,但原始编码是 windows-1252
,而不是 utf-8
。
>>> print u'03-ñîáä-áøâì-ùîàì.mp3'.encode('cp1252').decode('cp1255')
03-סמבה-ברגל-שמאל.mp3
一位朋友遇到了一堆重命名为乱码的文件的问题。它看起来像这样:
03-ñîáä-áøâì-ùîàì.mp3
什么时候应该是这样的:
03-סמבה-ברגל-שמאל.mp3
现在,文件数量庞大,所以他问我是否可以帮忙编写一个python脚本。我开始插手,但它就是不动。我的假设是它是 CP-1255(或 windows-1255
),显示为 utf-8
,所以我尝试:
fname.decode('utf-8').encode('windows-1255')
但是我遇到了 "can't encode characters" 错误。所以我接着尝试切换它们,还尝试了 latin-1
、windows-1252
、cp862
甚至 ISO-8859-8
。没有什么。
我该怎么办?编码一直让我感到困惑。我该如何处理?
我正在使用 python 2.7
你几乎猜对了,但原始编码是 windows-1252
,而不是 utf-8
。
>>> print u'03-ñîáä-áøâì-ùîàì.mp3'.encode('cp1252').decode('cp1255')
03-סמבה-ברגל-שמאל.mp3