Python 再次编码

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] 我有时会得到这样的东西(我来自俄罗斯): 如果我将这个字符串传递给这个函数(它在其他项目中帮助了

我正在尝试在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]
我有时会得到这样的东西(我来自俄罗斯):

如果我将这个字符串传递给这个函数(它在其他项目中帮助了我):

我得到了更奇怪的结果:

ÐÑвеÑиÑÑ Ñ ÑиÑиÑованием 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')
Отв