[英]De/encoding issue when storing foreign language text in dict in python
我用 python 抓取了外語(韓語)文本,並將其存儲在 dict 中。
單獨的文本打印到終端就好了,但 dict 打印如下:
{'title': u'\세\미\나\후\기'}
我該如何解決這個問題?
# -*- coding: utf-8 -*-
titleReponse = soupResponse.find('div','title').get_text()
print(titleReponse)
collected = {"title":titleReponse}
print(collected)
它只是 Python 2 下 Unicode 字符串的內部__repr__
表示。 正如您已經注意到的,打印它會顯示正確的文本:
>>> dict = {'title': u'\uc138\ubbf8\ub098 \ud6c4\uae30'}
>>> dict
{'title': u'\uc138\ubbf8\ub098 \ud6c4\uae30'}
>>> dict['title']
u'\uc138\ubbf8\ub098 \ud6c4\uae30'
print dict['title']
세미나 후기
你不應該擔心在所有的內部表示。 是的,對於沒有與打印內容相同的控制代碼的純 ASCII 字符串。 但是有這樣的事情是完全正常的:
>>> str = '123\n456'
>>> str
'123\n456'
>>> print str
123
456
內部字符串的表示再次與使用print
獲取輸出的表示不同。
如果您要大量使用 Unicode 字符串,最好升級到 Python 3。它對 Unicode 有非常出色的支持。 一個令人高興的副作用是,在這種情況下,Unicode 字符串顯示得更好(不是“正確”,而是“更好”——有區別😄):
>>> dict = {'title': u'\uc138\ubbf8\ub098 \ud6c4\uae30'}
>>> dict
{'title': '세미나 후기'}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.