簡體   English   中英

在python中在dict中存儲外語文本時的解碼/編碼問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM