[英]Python encoding unicode<>utf-8
因此,我在將Unicode轉換為utf-8的過程中迷路了。 我試圖定義一些包含Unicode字符的JSON,並將其寫入文件。 在終端上打印時,字符表示為'\\ u2606'。 查看文件時,字符編碼為'\\ u2606',請注意雙反斜杠。 有人可以針對這些編碼問題為我指明正確的方向嗎?
# encoding=utf8
import json
data = {"summary" : u"This is a unicode character: ☆"}
print data
decoded_data = unicode(data)
print decoded_data
with open('decoded_data.json', 'w') as outfile:
json.dump(decoded_data, outfile)
我嘗試將以下代碼段添加到文件的開頭,但這都沒有成功。
import sys
import codecs
sys.stdout = codecs.getwriter('utf8')(sys.stdout)
sys.stderr = codecs.getwriter('utf8')(sys.stderr)
首先,您要打印字典的表示形式,而python僅使用ascii字符,並使用\\uxxxx
轉義任何其他字符。
嘗試僅使用ascii字符的json.dump
也是json.dump
。 您可以通過以下方式強制json.dump
使用unicode:
json_data = json.dumps(data, ensure_ascii=False)
with open('decoded_data.json', 'w') as outfile:
outfile.write(json_data.encode('utf8'))
我想你也可以參考這個鏈接,它真的很有用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.