2011-11-15 74 views
1

我正在嘗試使用字符串Düsseldorf。當我這樣做:用Python打印「Düsseldorf」

# -*- coding: utf-8 -*- 
print "Düsseldorf" 

它打印奇怪的字符。任何人都可以幫助我嗎?

非常感謝。

+0

我相信編碼的東西只能用於8位編碼......而Python仍然會在一定範圍內轉義字節碼。 – Noldorin

回答

2

最有可能的,你的編輯器沒有設置產生UTF-8輸出。將其設置爲輸出UTF-8應該可以解決問題。

可替代地,使用Unicode轉義:

print u"D\u00FCsseldorf" 

注意string literals在Python 2.x的應用u(對於Unicode)前綴。未預先固定的文字(如"Düsseldorf")會生成str對象,它們是字節數組(儘管是名稱),而不是字符串。因此,在Python 2.x的一個正確配置編輯器,你想:

print u"Düsseldorf" 

在Python 3.x中,這種情況已經讓str對象整流代表,以及,字符串和引入bytes類型字節數組,如b'D\xc3\xbcsseldorf'

+0

仍然可以在我的機器上正確打印ü而無需使用u前綴。 – soulcheck

+0

@soulcheck是的,在一個正確配置的系統上(編輯器和shell都使用UTF-8),'print'杜塞爾多夫'和'printu'Düsseldorf''將會產生預期的結果。即使配置被破壞,Unicode轉義仍然有效。來自你的問候 - 知道在哪裏;) – phihag