python中文编码问题
目录
unicode和string无法对比:
UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode – interpreting them as being unequal
s1=’你好’ #string
s2=u’你好’ #unicode
s1和s2不能直接对比,需要把s2转为gbk才行
s1==s2.encode(‘gbk’)
转码思路
字符串在Python内部的表示是unicode编码,在编码转换时通常需要以unicode作为中间编码。
先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。
转码举例
s.decode(‘utf-8’, ‘ignore’).encode(‘gbk’, ‘ignore’)
先由utf-8转为unicode,再由unicode转为gbk,ignore表示忽略非法字符
s = u'中文' # s为unicode
print isinstance(s, unicode) # True
print s.encode('utf-8', 'ignore') # 中文
# 由unicode转为utf-8,ignore表示忽略非法字符
转载自:https://blog.csdn.net/Lv2018666/article/details/79769362