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

时间:2013-07-08 12:48:58

标签: python unicode utf-8

我的函数返回一个元组 然后将其分配给变量x并附加到列表中。

x = (u'string1', u'string2', u'string3', u'string4')
resultsList.append(x)

该函数被多次调用,最终列表包含20个元组。

元组中的字符串是unicode,我想将它们转换为utf-8。

某些字符串还包括非ASCII字符,如ö,ä等。

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

1 个答案:

答案 0 :(得分:9)

使用嵌套列表推导:

encoded = [[s.encode('utf8') for s in t] for t in resultsList]

这将生成一个包含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

这是正常,因为Python提供此数据用于调试目的。 \xc3\x9f转义序列表示用于编码小ringel-es字符的两个UTF-8字节C39F(十六进制)。