1.文件編碼是UTF-8,同時在文件頭添加 # -*- coding: utf-8 -*-python
2.文件中全部的字符串前都加u,如 u"中文"json
3.在輸入(抓取某些utf-8/gbk的網頁)、輸出(輸出到網頁、終端)的時候,要記住python內部是用Unicode存儲的windows
4.全部輸入要先decode,變成unicode,輸出時要encode變成想要的編碼(MacOS X/Linux下輸出爲utf-8,Windows下輸出爲gbk,但若是是在pycharm本身的控制檯下的話,windows下輸出爲utf-8也能夠正常顯示)編碼
5.還有其餘不少種古老的解決方案,好比統一用gbk,好比中轉編碼不用unicode,而用utf-8,如此種種。。.net
更新一下,來源於 http://www.newsmth.net/nForum/article...code
1.源碼文件用coding: utf-8指定編碼並把文件保存爲utf-8格式utf-8
2.爲了做爲__main__模塊執行時不出沒必要要的錯誤,統一使用\n換行ci
3.若是須要在源碼內嵌入漢字等非ascii字符,建議使用u前綴做爲unicode字符串,這樣在print時能夠能夠不作編碼轉換,unicode
4.不然若是控制檯編碼與源文件編碼不一致就必須顯式轉換,經過locale.getdefaultlocale()能夠獲取系統語言和編碼字符串
5.涉及文件路徑的最好轉換爲sys.getfilesystemencoding()編碼
6.unicode字符串在寫入文件時必須轉換爲某種字節編碼
7.json默認支持utf-8編碼
8.儘可能用utf-8和unicode,除了前面說的文件路徑和寫入文件等少數狀況
---------------------------------------------------------------------------------------------
其實若是想考慮從此遷移到 python 3 或者只是想使用 python 3 風格的默認 unicode, 可使用
from __future__ import unicode_literals
以後不須要再在全部中文字符串前加 u 了, 相反, 全部原來的"字符串"如今默認均爲unicode串了. 若是須要使用utf-8串能夠選擇在前面加 b :)