修复 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-1windows-1252cp862 甚至 ISO-8859-8。没有什么。

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

我正在使用 python 2.7

你几乎猜对了,但原始编码是 windows-1252,而不是 utf-8

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