如
元素可能是utf8或ascii,也可能已经是同一种编码
也就是说谁是哪一种编码是不确定的
a=[u'\u54c8\u54c8', '\xba\xc7\xba\xc7']
u'\u54c8\u54c8\u5475\u5475'
1
ayang23 2015-07-15 19:55:57 +08:00 2
你的字符串里现在有两种,unicode, utf-16
print ''.join([s if isinstance(s, unicode) else s.decode('utf-16') for s in a]) 如果包含更多编码的情况,那只能一个一个猜了,可以用chardet这个库 |
3
magicyu1986 2015-07-15 23:04:18 +08:00
之前也遇到过这个问题。
遍历可能的字符编码,然后用正则表达式一个一个的匹配。 这种方式,笨,慢,期待其他高人的回答。 |
4
Hackathon 2015-07-16 01:35:31 +08:00 1
In [9]: from CodeConvert import CodeConvert as cc
In [10]: a = [u'\u54c8\u54c8', '\xba\xc7\xba\xc7'] In [11]: ''.join(cc.Convert2Unicode(a)) Out[11]: u'\u54c8\u54c8\u5475\u5475' In [12]: CodeConvert 只考虑了部分编码,大部分情况下还是够用的 |
5
wkdhf233 2015-07-16 02:52:11 +08:00
你可以把猜编码的函数都丢一个list里,猜中的朝前移。。
|
6
huangfs 2015-07-16 09:00:55 +08:00
python3?
|