簡體   English   中英

Python編碼:列表到列表中包含特殊字符和數字的字符串

[英]Python encoding: list to string having special characters and numbers in the list

我需要加入這樣的東西:

["Círculo", 23]
["Triángulo, 25, 19, "dos"]

我看過這篇文章 - > 使用Python加入一個包含Integer值的列表

但解決方案如:

', '.join(map(str, myList)) or ', '.join(str(x) for x in list_of_ints)

對我不起作用,因為特殊字符“í”使它失敗:

UnicodeEncodeError:'ascii'編解碼器無法編碼字符...位置...:序號不在范圍內(128)

那么解決它的pythonic方法是什么? 我不想檢查類型...... Thx!

檢查編碼我發現了一個適合我的解決方案:

 u', '.join([unicode(x.decode('utf-8')) if type(x) == type(str()) else unicode(x) for x in a])

訣竅是使用decode('utf-8')來獲得字符的有效8位表示。

希望這會有所幫助。

如果您可以將列表中的字符串指定為unicode,例如:

[u"Círculo", 23]
[u"Triángulo", 25, 19, u"dos"]

這應該工作:

u', '.join(unicode(x) for x in list_of_ints)

假設您正在運行Python 2。

import encodings

a=encodings.utf_16.decode(a[0])
encodings.utf_16.encode(a[0])

您是否嘗試過使用編碼模塊? 也許你會得到它與它一起工作。 但似乎沒有使用utf_16編碼...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM