2016-02-23 111 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