1

我正在尝试解析一个 iTunes 媒体库文件,它是一个使用 python 和 plistlib 的 plist 文件。我写了一个简单的python脚本:

import plistlib

plist = plistlib.readPlist('tunes.xml')
print(plist['Tracks'])

但是当我尝试运行它时,第 3 行出现错误:

UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 21970: ordinal not in range(128)

我尝试加载文件,将 utf-8 编码转换为 abytearray并使用plistlib.readPlistFromBytes,但仍然出现错误

解决此问题的最佳方法是什么?

4

1 回答 1

2

您运行它的终端会话或控制台可能未设置为 UTF-8 compatible locale。有关更多信息,请参见https://wiki.archlinux.org/index.php/Locale。例如,在美国英语语言环境中:

export LANG=en_US.UTF-8
于 2012-12-29T06:33:52.247 回答