簡體   English   中英

Python編碼unicode <> utf-8

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

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