我试着看一堆stackoverflow示例。
使用的Python版本: Python 2.7.10
字符串s的输出看起来像
u'bh\xfcghi' where \xfc=ü
我正在从网页上阅读。
通过.encode('utf-8')对字符串进行编码后,它看起来像
'bh\xc3\xbcghi' where \xc3\xbc=ü
预期输出应为:
bhüghi
我甚至尝试解码/编码(latin-1),解码(utf-8)。
在nfn neil评论后,我再次尝试了以下内容:
elem.text输出:
('elem text:', u'bh\xfcghi\nMCI\n8 90 1 0 0 2 0 0 0 0 0 0 2 26 41.4 18.5 89 14.9')
elem文字类型:
('elem text type:', <type 'unicode'>)
现在,我正在尝试打印它:
splitString = elem.text.encode('utf-8').decode("utf-8").split()
print("splitString: ", splitString[0])
SplitString [0]输出:
u'bh\xfcghi'
现在,如果我在拆分后打印整个字符串:
print("splitString: ", splitString)
SplitString输出:
[u'bh\xfcghi', u'MCI', u'8', u'90', u'1', u'0', u'0', u'2', u'0', u'0', u'0', u'0', u'0', u'0', u'2', u'26', u'41.4', u'18.5', u'89', u'14.9']
完整代码在pastebin中: 这是A link
任何帮助将不胜感激。
答案 0 :(得分:0)
s = u'bh\xfcghi\nMCI\n8 90 1 0 0 2 0 0 0 0 0 0 2 26 41.4 18.5 89 14.9'
s = s.encode('utf-8')
xs = s.split(' ')
print(xs[0])
输出:
bhüghi
MCI
8
试试吧;有用。只是在终端输入时没有获得“预期”输出的原因是当你不使用print
时Python使用\ x转义码。
答案 1 :(得分:0)
我通过使用unicodedata库来实现它:
splitString = unicodedata.normalize('NFKD',
elem.text).encode('ascii','ignore').split()