如何在Python 2.7中将非ascii char与string结合起来

时间:2016-02-23 09:35:33

标签: string python-2.7 encoding ascii decoding

我有一个字符串'My Name'和带有'sünil'数据的变量customerName。我想结合两者,所以我试过

'My Name' + customerName

但这显示错误

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 20: ordinal not in range(128)

然后我试了

'My Name' + encodeStr(customerName)

但是显示

My Name s\x3\xenil

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您可以将此名称组合在一起。

comibined_name = 'My Name' + customerName

打印它,您需要对其进行编码,使其与您要打印的编码相匹配。这有点令人困惑,你的输出可能无法处理utf-8字符。

如果您的脚本以

开头
# -*- coding: utf-8 -*-
comibined_name = 'My Name' + 'Sünil'.decode('utf-8')

你可以打印

print('My Name' + customerName)  

请参阅Unicode HOWTO了解原因。

在Windows下,如果以utf-8格式保存源代码,此示例 工作原理:

# -*- coding: utf-8 -*-
comibined_name = 'My Name ' + 'Sünil'.decode('utf-8')

print(comibined_name)