如何连接字符串和 Unicode 并获得字符串结果?我尝试了以下方法。但这显然是不正确的。
>>> s = 'jklö'
>>> u = u'äpoi'
>>> print s+u
Traceback (most recent call last): File "", line 1, in UnicodeDecodeError: 'ascii' codec can't decode byte 0x94 in position 3: ordinal not in range(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
最佳答案
您正在尝试从 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
关于Python:如何连接字符串和 Unicode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13914447/