use*_*609 3 python unicode utf-8
我的函数返回一个元组,然后将其赋值给变量x并附加到列表中.
x = (u'string1', u'string2', u'string3', u'string4')
resultsList.append(x)
Run Code Online (Sandbox Code Playgroud)
该函数被多次调用,最终列表由20个元组组成.
元组中的字符串是unicode,我想将它们转换为utf-8.
一些字符串还包括非ASCII字符,如ö,ä等.
有没有办法一步一步地转换它们?
使用嵌套列表理解:
encoded = [[s.encode('utf8') for s in t] for t in resultsList]
Run Code Online (Sandbox Code Playgroud)
这将生成包含UTF-8编码数据的字节字符串的列表.
如果要打印这些列表,您将看到Python将Python字节字符串的内容表示为Python文字字符串; 带引号和任何字节,使用转义序列表示aro不可打印的ASCII代码点:
>>> l = ['Kaiserstra\xc3\x9fe']
>>> l
['Kaiserstra\xc3\x9fe']
>>> l[0]
'Kaiserstra\xc3\x9fe'
>>> print l[0]
Kaiserstraße
Run Code Online (Sandbox Code Playgroud)
这是正常的,因为Python为调试目的提供了这些数据.的\xc3和\x9f转义序列代表两个UTF-8字节C39F(十六进制)被用于编码小零关系Ringel-ES字符.