如何使用python将元组的unicode列表转换为utf-8

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字符,如ö,ä等.

有没有办法一步一步地转换它们?

Mar*_*ers 9

使用嵌套列表理解:

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字符.