Python學習 中文顯示亂碼

2021-07-23 19:38:58 字數 805 閱讀 3964

寫作業時遇到乙個問題:

程式列印乙個字串,暫且記為元素1,其中包含中文;另外還列印了乙個list,list的元素也是中文字元,記該list為元素2。執行時總是顯示有亂碼,python檔案已經設定了# -*- coding: utf-8 -*-。網上找了些解決方法,比如設定setting-->file encoding-->ide encoding=utf-8,project encoding=utf-8。仍然無效。具體表現為,均設定為utf-8,元素2不能正常顯示,設定為project encoding=gbk,元素2能夠正常顯示,但是元素1又顯示為亂碼。總之不管怎麼設定,總是不能全部正常顯示。

網上搜尋了乙個說明,感覺比較有用,先記錄下

原始碼檔案用coding: utf-8指定編碼並把檔案儲存為utf-8格式

為了作為__main__模組執行時不出不必要的錯誤,統一使用\n換行

如果需要在原始碼內嵌入漢字等非ascii字元,建議使用u字首作為unicode字串,這樣在print時可以可以不做編碼轉換,

否則如果控制台編碼與原始檔編碼不一致就必須顯式轉換,通過locale.getdefaultlocale()可以獲取系統語言和編碼

涉及檔案路徑的最好轉換為sys.getfilesystemencoding()編碼

unicode字串在寫入檔案時必須轉換為某種位元組編碼

json預設支援utf-8編碼

盡量用utf-8和unicode,除了前面說的檔案路徑和寫入檔案等少數情況

最終解決辦法:元素1加了u字首,保持設定ide encoding=utf-8,project encoding=utf-8,最終全部正常顯示了。

QT學習 中文顯示亂碼

一 中文在qt中顯示亂碼的原因 是因為編碼和解碼的不對應造成的,比如我們在windows xp vs2010下原始碼檔案 cpp 的字符集是gbk,而qt比如qstring的編碼方式是utf。同樣的 我是漢字 這幾個字,gbk編碼等價於 const char str xce xd2 xca xc7 ...

MySQL 中文顯示亂碼

mysql 中文顯示亂碼 在hibernate.cfg.xml中應該這樣寫 property name connection.url jdbc mysql localhost 3306 test?useunicode true characterencoding utf 8 property 如果用...

ubuntu gedit顯示中文亂碼

本文適用於 ubuntu 使用者,而不適用於 kubuntu xubuntu 使用者。9.10預設有了,排第二個 預設配置下,用 ubuntu 的文字編輯器 gedit 開啟 gb18030 gbk gb2312 等型別的中文編碼文字檔案時,將會出現亂碼。出現這種情況的原因是,gedit 使用乙個編...