Python:如何连接字符串和 Unicode?

标签 python unicode

如何连接字符串和 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/

相关文章:

python - python 正则表达式中断言背后的积极查找问题

python - 在 scrapy 网络爬虫中获取错误

python - Robot Framework - 访客界面 - 如何获取关键字的关键字子项?

html - 设置元素的语言属性会导致子元素出现 unicode 字符样式错误

python - 将 dict 值四舍五入为 2 位小数

delphi - Delphi 2007 和 XE3 中的差分函数 Char/Chr

windows - WinAPI Unicode 和 ANSI 函数

java - Java 声明困惑

sql - SQL 长度函数如何处理 unicode 字素?

python - 如何将 '1,1'形式的字符串转换为float(1,1)?