python json.dumps() 中文亂碼問題

來源:互聯網
上載者:User

標籤:span   編碼   enc   亂碼   亂碼問題   顯示   gif   href   預設   

python 輸出一串中文字元,在控制台上(控制台使用UTF-8編碼)通過print 可以正常顯示,但是寫入到檔案中之後,中文字元都輸出成ascii編碼了。英文字元能正常顯示可讀字元。

原因:json.dumps 序列化時預設使用的ascii編碼,想輸出真正的中文需要指定ensure_ascii=False:更深入分析,是應為dJSON object 不是單純的unicode實現,而是包含了混合的unicode編碼以及已經用utf-8編碼之後的字串。

可行的方式如下:

 1 import os 2 import os.path 3 import io 4 import sys 5 import json 6  7 contentByPage = {} 8 contentByPage[‘document‘] = shortName 9 contentByPage[‘content‘] = text10 contentByPage[‘pageNumber‘] = pageNumber11 jsonFile = io.open(shortName+"--"+str(pageNumber)+".json",‘w‘, encoding=‘utf8‘)12 jsonFile.write(json.dumps(contentByPage, ensure_ascii=False).decode(‘utf8‘))13 jsonFile.flush()14 jsonFile.close()

 

python json.dumps() 中文亂碼問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.