中国語のASCII文字化けしの問題を読み書きします

1989 ワード

今日はフロントエンドに小さなバックグラウンドを書いてあげます.データを読み取ってjsonに渡して、展示させます.データは簡単ですが、処理中に問題が発生しました.ファイルには中国語の処理が含まれています.毎回処理が終わるたびに書かれたjsonフォーマットはASCIIコードで、全く使えません.コードは次のとおりです.
# -*- coding: utf-8 -*-
import json
import codecs

f = codecs.open('data.txt', 'r', 'utf-8')
content = json.load(f)
print content[0]['id']
jsdata = json.dumps(content, sort_keys=True, indent=4)
f.close()


j = codecs.open('test.json', 'w')
j.write(jsdata)
j.close()

ネットで調べてみると、この文章を参考にして、修正したコードは以下の通りです.
# -*- coding: utf-8 -*-
import json
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )

f = open('data.txt', 'r')
content = json.load(f)
print content[0]['id']
#   json  ,    ascii  
jsdata = json.dumps(content, sort_keys=True, indent=4, ensure_ascii=False)
f.close()


j = open('test.json', 'w')
j.write(jsdata)
j.close()