修复Python中的乱码文件名?

时间:2015-02-18 22:47:48

标签: python unicode encoding

一位朋友遇到了一堆被重命名为乱码的文件。它看起来像这样:

03-ñîáä-áøâì-ùîàì.mp3

它应该是这样的:

03-סמבה-ברגל-שמאל.mp3

现在,文件数量巨大,所以他问我是否可以帮助使用python脚本。我开始干涉,但它不会让步。我的假设是它是CP-1255(或windows-1255),显示为utf-8,所以我尝试了:

fname.decode('utf-8').encode('windows-1255')

但是我得到了“无法编码字符”的错误。然后我尝试切换它们,并尝试latin-1windows-1252cp862甚至ISO-8859-8。没有。

我该怎么办?编码一直让我感到困惑。我该如何处理?

我正在使用python 2.7

1 个答案:

答案 0 :(得分:2)

你几乎没错,但原始编码是windows-1252,而不是utf-8

>>> print u'03-ñîáä-áøâì-ùîàì.mp3'.encode('cp1252').decode('cp1255')
03-סמבה-ברגל-שמאל.mp3