Python UTF-8 编码问题

0 投票
1 回答
2465 浏览
提问于 2025-04-16 18:16

我正在做一个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

撰写回答