2016-02-23 109 views
-1

我有一个字符串“我的名字”和变量customerName与'sünil'数据。我想结合这两个,所以我尝试如何将非ASCII字符与Python中的字符串结合2.7

'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 

哪有我解决这个问题?

回答

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) 
+0

不工作。即使我试过unicode(customerName,'utf-8')..它显示TypeError:不支持Unicode解码 –

+0

修正了上面的一些错别字。整个unicode/ascii的东西很难在python2中正确使用。如果您需要了解为何无法在操作系统中打印到utf-8,则需要指定有关您的环境的确切信息。 – 576i