相关疑难解决方法(0)

Python字符串比较 - 特殊/ Unicode字符的问题

我正在编写一个Python脚本来处理一些音乐数据.它应该通过比较它们的条目并匹配它们来合并两个独立的数据库.它几乎正常工作,但在比较包含特殊字符(即重音字母)的字符串时失败.我很确定它是ASCII与Uni​​code编码问题,因为我收到错误:

"Unicode相等比较无法将两个参数都转换为Unicode - 将它们解释为不相等"

我意识到我可以使用正则表达式来删除有问题的字符,但我正在处理大量数据并且依赖正则表达式使我的程序变得非常慢.有没有办法让Python正确比较这些字符串?这里发生了什么 - 有没有办法判断它是否将我的字符串存储为ASCII或Unicode?

编辑1:我使用的是Python v2.6.6.检查类型后,我发现一个数据库向我发出Unicode字符串,一个给出ASCII.所以这可能就是问题所在.我正在尝试将ASCII字符串从第二个数据库转换为Unicode,使用类似的行

line = unicode(f.readline().decode(latin_1).encode(utf_8))
Run Code Online (Sandbox Code Playgroud)

但这会产生如下错误:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 41: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

我不确定'ascii'编解码器为什么抱怨,因为我正在尝试 ASCII 解码.有人可以帮忙吗?

python string

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×1

string ×1