Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将此unicode字符串从数据库转换为utf-8_Python_Utf 8 - Fatal编程技术网

Python 如何将此unicode字符串从数据库转换为utf-8

Python 如何将此unicode字符串从数据库转换为utf-8,python,utf-8,Python,Utf 8,通过对sqlite3的数据库调用中的项进行迭代,我得到了以下信息 (u'9', u'HS 09 - Coffee, Tea, Mat\xe9 and Spices', u'Bangladesh', 2000, 6127) 我需要将其转换为utf-8,特别是第二个字段u'HS 09-咖啡、茶、垫子和香料“结果文本应为: 'HS 09-咖啡、茶、材料和香料' 如何做到这一点?使用.encode('utf-8')。例如: >>> u'HS 09 - Coffee, Tea, Mat

通过对sqlite3的数据库调用中的项进行迭代,我得到了以下信息

(u'9', u'HS 09 - Coffee, Tea, Mat\xe9 and Spices', u'Bangladesh', 2000, 6127)
我需要将其转换为utf-8,特别是第二个字段
u'HS 09-咖啡、茶、垫子和香料“
结果文本应为:

'HS 09-咖啡、茶、材料和香料'

如何做到这一点?

使用
.encode('utf-8')
。例如:

>>> u'HS 09 - Coffee, Tea, Mat\xe9 and Spices'.encode('utf-8')
'HS 09 - Coffee, Tea, Mat\xc3\xa9 and Spices'
关于术语的说明-数据库调用的结果是unicode。您想将unicode对象转换(编码)为utf-8的问题文本是正确的,但是您的标题有点不正确。我对它进行了编辑以反映这一点-由TestRing编码的utf-8不是Unicode字符串。

使用
.encode('utf-8')
。例如:

>>> u'HS 09 - Coffee, Tea, Mat\xe9 and Spices'.encode('utf-8')
'HS 09 - Coffee, Tea, Mat\xc3\xa9 and Spices'
关于术语的说明-数据库调用的结果是unicode。您想将unicode对象转换(编码)为utf-8的问题文本是正确的,但是您的标题有点不正确。我对它进行了编辑以反映这一点-由TestRing编码的utf-8不是Unicode字符串。

使用
.encode('utf-8')
。例如:

>>> u'HS 09 - Coffee, Tea, Mat\xe9 and Spices'.encode('utf-8')
'HS 09 - Coffee, Tea, Mat\xc3\xa9 and Spices'
关于术语的说明-数据库调用的结果是unicode。您想将unicode对象转换(编码)为utf-8的问题文本是正确的,但是您的标题有点不正确。我对它进行了编辑以反映这一点-由TestRing编码的utf-8不是Unicode字符串。

使用
.encode('utf-8')
。例如:

>>> u'HS 09 - Coffee, Tea, Mat\xe9 and Spices'.encode('utf-8')
'HS 09 - Coffee, Tea, Mat\xc3\xa9 and Spices'

关于术语的说明-数据库调用的结果是unicode。您想将unicode对象转换(编码)为utf-8的问题文本是正确的,但是您的标题有点不正确。我对它进行了编辑以反映这一点——由TestRing编码的utf-8不是Unicode字符串。

哇,真的那么简单吗?但是,即使字符串上有一个u“”,但\xe9肯定不是有效的unicode字符。所以它不是真正的utf-8,对吗?如果是这样,如果python不知道\xe9的原始编码是什么,它如何知道如何对字符进行编码,例如latin-1、iso-8859-2等。我只是为问题添加了更多的上下文,例如,生成的文本应该打印为“HS 09-咖啡、茶、Maté和香料”确实是一个有效的Unicode代码点。@P.Jakobsen,是
\xe9
是有效的Unicode字符U+00e9。要获取所需字符,只需按原样打印即可。如果打印包含该字符串的列表或元组,它将使用该字符串的
repr
,这将转义ASCII集合之外的任何字符。@P.Jakobsen,
replace
应该没有任何区别
u'\xe9'
u'é'
应该相同。尝试
print data[1]
而不是
print data
,看看我刚才说的是什么。
encode
将Unicode字符串转换为字节字符串,因此应该有所不同。也许你的文件不是UTF-8?如果你能直接写一个Unicode字符串,就会有一些隐式编码。哇,真的这么简单吗?但是,即使字符串上有一个u“”,但\xe9肯定不是有效的unicode字符。所以它不是真正的utf-8,对吗?如果是这样,如果python不知道\xe9的原始编码是什么,它如何知道如何对字符进行编码,例如latin-1、iso-8859-2等。我只是为问题添加了更多的上下文,例如,生成的文本应该打印为“HS 09-咖啡、茶、Maté和香料”确实是一个有效的Unicode代码点。@P.Jakobsen,是
\xe9
是有效的Unicode字符U+00e9。要获取所需字符,只需按原样打印即可。如果打印包含该字符串的列表或元组,它将使用该字符串的
repr
,这将转义ASCII集合之外的任何字符。@P.Jakobsen,
replace
应该没有任何区别
u'\xe9'
u'é'
应该相同。尝试
print data[1]
而不是
print data
,看看我刚才说的是什么。
encode
将Unicode字符串转换为字节字符串,因此应该有所不同。也许你的文件不是UTF-8?如果你能直接写一个Unicode字符串,就会有一些隐式编码。哇,真的这么简单吗?但是,即使字符串上有一个u“”,但\xe9肯定不是有效的unicode字符。所以它不是真正的utf-8,对吗?如果是这样,如果python不知道\xe9的原始编码是什么,它如何知道如何对字符进行编码,例如latin-1、iso-8859-2等。我只是为问题添加了更多的上下文,例如,生成的文本应该打印为“HS 09-咖啡、茶、Maté和香料”确实是一个有效的Unicode代码点。@P.Jakobsen,是
\xe9
是有效的Unicode字符U+00e9。要获取所需字符,只需按原样打印即可。如果打印包含该字符串的列表或元组,它将使用该字符串的
repr
,这将转义ASCII集合之外的任何字符。@P.Jakobsen,
replace
应该没有任何区别
u'\xe9'
u'é'
应该相同。尝试
print data[1]
而不是
print data
,看看我刚才说的是什么。
encode
将Unicode字符串转换为字节字符串,因此应该有所不同。也许你的文件不是UTF-8?如果你能直接写一个Unicode字符串,就会有一些隐式编码。哇,真的这么简单吗?但是,即使字符串上有一个u“”,但\xe9肯定不是有效的unicode字符。所以它不是真正的utf-8,对吗?如果是这样的话,如果python不知道\xe9的原始编码是什么,它如何知道如何编码字符,例如latin-1、iso-8859-2等。我只是为这个问题添加了更多的上下文,例如,生成的文本应该打印为“HS 09-咖啡、茶、Maté和香料”确实是一个有效的Unicode代码点。@P.Jakobsen,yes