2016-02-05 39 views
0

我正在使用Python2.7並從頁面抓取日文/中文字符。它打印罰款控制檯,但是當我在listdict不和print(records)顯示爲我存儲:Python:無法正確打印/存儲國際字符

u'portuguese ':u'sirena abisgundecheck翻譯', u'japanese \ XA0(R \ u014dmaji) ':u'm \ u0101meiru - abisugunde', u'chinese ':U' \ u6c34 \ u7cbe \ u9cde- \ u6df1 \ u6e0a \ u6208 \ u8feacheck 翻譯」,......

回答

2

的Python 2對於破壞unicode字符是臭名昭着的。考慮切換到原生處理所有這些的Python 3。

在我看來,鑑於dict = {'japanese': u'japanese\xa0(r\u014dmaji)'}字符顯示您呈現他們印製直線距離(print dict)時的方式,但如果你這樣做print dict['japanese']或第一疊代鍵,然後打印更好地工作。

很明顯,u'xxx'格式是Python在內部表示unicode字符串的方式。當他們孤立地打印時,它們會轉換爲人類可讀的形式,但當它們作爲較大結構的一部分存在時,則不會。

+0

不可能,因爲它正在生產中使用。 – Volatil3

+0

我明白了。在我看來,給出'字典= {'日本':u'japanese \ xa0(r \ u014dmaji)'}'這些字符會以直接印刷的方式呈現出來('print dict'),但它們的效果更好如果你打印字典['日本']或迭代鍵和打印。你能發佈一些與你的具體用例有關的更多代碼嗎? –

+0

哦,是的。訪問某個鍵並打印出字符fine.print(記錄[2] ['chinese'])'print'水印鱗 - 深淵戈迪'而print(記錄[2])產生'{u' chinese':u'\ u6c34 \ u7cbe \ u9cde- \ u6df1 \ u6e0a \ u6208 \ u8fea'}' 爲什麼? – Volatil3