Python 再次编码
我正在尝试在python上使用sqlite:Python 再次编码,python,encoding,Python,Encoding,我正在尝试在python上使用sqlite: from pysqlite2 import dbapi2 as sqlite con = sqlite.connect('/home/argon/super.db') cur = con.cursor() cur.execute('select * from notes') for i in cur.fetchall(): print i[2] 我有时会得到这样的东西(我来自俄罗斯): 如果我将这个字符串传递给这个函数(它在其他项目中帮助了
from pysqlite2 import dbapi2 as sqlite
con = sqlite.connect('/home/argon/super.db')
cur = con.cursor()
cur.execute('select * from notes')
for i in cur.fetchall():
print i[2]
我有时会得到这样的东西(我来自俄罗斯):
如果我将这个字符串传递给这个函数(它在其他项目中帮助了我):
我得到了更奇怪的结果:
ÐÑвеÑиÑÑ Ñ ÑиÑиÑованием etc
我应该怎么做才能得到正常的西里尔符号 和#208
看起来像是\xD0\x9E
或\u1054
的UTF-8字节对。更广为人知的西里尔字母O
(大写O)
换句话说,您手上的UTF-8数据进行了奇怪的编码。转动{编码>将数字转换成字节(chr(208)
可以),然后从UTF-8解码:
>>> (chr(208) + chr(158)).decode('utf-8')
u'\u1054'
>>> print (chr(208) + chr(158)).decode('utf-8')
О
>>> print (chr(208) + chr(158) + chr(209) + chr(130) + chr(208) + chr(178)).decode('utf-8')
Отв
ÐÑвеÑиÑÑ Ñ ÑиÑиÑованием etc
>>> (chr(208) + chr(158)).decode('utf-8')
u'\u1054'
>>> print (chr(208) + chr(158)).decode('utf-8')
О
>>> print (chr(208) + chr(158) + chr(209) + chr(130) + chr(208) + chr(178)).decode('utf-8')
Отв