Python UTF-8 编码问题
我正在做一个Python应用程序,但在处理字符串时遇到了一些问题。
我有一个字符串 "She’s Out of My League"(没有引号)。我把它存储在一个变量里,然后想把它放进sqlite3数据库里。但是,我遇到了这个错误:
sqlite3.ProgrammingError: 你不能使用8位字节字符串,除非你使用一个可以理解8位字节字符串的text_factory(比如text_factory = str)。强烈建议你直接把应用程序切换到Unicode字符串。
所以,我尝试把这个字符串转换成Unicode格式。我试了这两种方法:
new_str = unicode(old_str)
new_str = old_str.encode("utf8")
但是这又给我带来了另一个错误:
UnicodeDecodeError: 'utf8'编解码器无法解码位置49的字节0x92:意外的代码字节
我现在卡住了。我到底哪里做错了呢?
1 个回答
1
很简单。你在假设它是UTF-8编码。
>>> print 'She\x92s Out of My League'.decode('cp1252')
She’s Out of My League