如何连接字符串和Unicode并获取字符串作为结果?我尝试了以下内容。但这显然不正确。
>>> s = 'jklö'
>>> u = u'äpoi'
>>> print s+u
回溯(最近一次调用最后一次):文件“”,第1行,在UnicodeDecodeError中:'ascii'编解码器无法解码位置3中的字节0x94:序数不在范围内(128)
>>> unicode(s, 'latin-1')+u
u'jkl\x94\xe4poi'
>>> (unicode(s, 'latin1')+u).encode('latin1')
'jkl\x94\xe4poi'
>>> print (unicode(s, 'latin1')+u).encode('latin1')
jklöõpoi
答案 0 :(得分:2)
您正在尝试从latin-1解码s
,但您的终端未使用latin-1编码;检查sys.stdin.encoding
以了解它是什么。
例如,默认情况下我有cp850
:
>>> import sys
>>> sys.stdin.encoding
'cp850'
>>> s = 'jklö'
>>> u = u'äpoi'
>>> s
'jkl\x94'
>>> u
u'\xe4poi'
>>> print unicode(s, 'cp850') + u
jklöäpoi
>>> print (unicode(s, 'cp850') + u).encode('cp850')
jklöäpoi
答案 1 :(得分:1)
请阅读此内容并将其放在枕头下。这是非常有价值的文档
答案 2 :(得分:0)
这似乎有效:
>>> l = s + u.encode('cp1252')
>>> print l
jklöäpoi
>>> type(l)
<type 'str'>