无法正确编码或解码字符串

时间:2017-04-07 00:08:52

标签: python selenium-webdriver encoding utf-8 python-2.x

我试着看一堆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

任何帮助将不胜感激。

2 个答案:

答案 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()