我的代码:
a = '汉'
b = u'汉'
这两个是相同的汉字。但很明显,a == b
是False
。我该如何解决?请注意,我无法将a
转换为utf-8
,因为我无法访问代码。我需要将b
转换为a
正在使用的编码。
所以,我的问题是,如何将b
的编码转换为a
的编码?
答案 0 :(得分:3)
如果您不知道a
的编码,则需要:
a
的编码b
醇>
首先,要检测a
的编码,我们使用chardet。
$ pip install chardet
现在让我们使用它:
>>> import chardet
>>> a = '汉'
>>> chardet.detect(a)
{'confidence': 0.505, 'encoding': 'utf-8'}
所以,要真正完成你的要求:
>>> encoding = chardet.detect(a)['encoding']
>>> b = u'汉'
>>> b_encoded = b.encode(encoding)
>>> a == b_encoded
True
答案 1 :(得分:1)
答案 2 :(得分:-1)
a.decode
和b.encode
都可以:
In [133]: a.decode('utf') == b
Out[133]: True
In [134]: b.encode('utf') == a
Out[134]: True
请注意,str.encode
和unicode.decode
也可用,请勿混淆。请参阅 What is the difference between encode/decode?