我的函数返回一个元组 然后将其分配给变量x并附加到列表中。
x = (u'string1', u'string2', u'string3', u'string4')
resultsList.append(x)
该函数被多次调用,最终列表包含20个元组。
元组中的字符串是unicode,我想将它们转换为utf-8。
某些字符串还包括非ASCII字符,如ö,ä等。
有没有办法一步一步地转换它们?
答案 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(十六进制)。