python2の漢字化け問題を一気にわかりやすく解説。
初心者がPython2の文字化けを心配しないようにするために!
詳細については、DIAM Company の Python トレーニング クラスの教師である Brother Huang を参照してください。
1. 作成するコード モジュールはエンコーディングを指定する必要があります
コードでコーディングが指定されていない場合、Python はデフォルトですべての文字を ASCII に設定します。コード、
ASCII コードのみ 256 文字をサポートします。ASCII コードは中国語をサポートしていないため、エラーが報告されます。
そのため、コードの前に #coding:utf-8 または #coding:gbk を記述する必要があります
ただし、一般的には #coding:utf-8 を記述します
2. python2 内のすべてのエンコーディングは Unicode に統一されています
Unicode はすべての言語を処理できます世界のキャラクター。
utf-8 は Unicode の実装形式なので、コードの前に #coding:utf-8 を記述する必要があります
3. エンコーディング変換
Python2 の内部エンコーディングは
他のエンコーディング decode() であることに注意してください。が unicode の場合、Encoding encode() は指定したエンコーディングになるため、文字化けは発生しません。
4. Webページを収集する場合
コード指定 #coding:utf-8
Webページのエンコードがgbkの場合
html = html.decode('gbk').encode( 'utf-8')
5. コードの前に #coding:gbk を記述することもできますが、コード ファイルが gbk に保存されていることも確認する必要があります。この問題は Windows で発生します。
6. 辞書のキーまたは値の漢字に関する問題
#coding:utf-8
dict1 ={1:'Python 週末トレーニング クラス',2:'相談 010-68165761 QQ: 1465376564'}
print dict1
# この出力では中国語の文字は表示されませんが、中国語の他のエンコーディングが表示されます
dict2 ={1:'Python ビデオ トレーニング クラス',2:'相談 010-68165761 QQ: 1465376564'}
dict2 のキー:
print dict2[key ]
7. Unicode 中国語文字エンコーディングがテキスト ファイルに書き込まれます
テキスト ファイルのエンコーディングに従って変換する必要があります
encode('utf-8') または encode('gbk') が可能
概要: エラー メッセージに表示されるすべてのエラー エラーには「ASCII」が含まれており、中国語の文字エンコーディングが指定されていないことを意味します。
----文字列のエンコードタイプを取得します---------------------- --------- ------------------------
>>> date = urllib2.urlopen("http ://www.baidu.com ")
>>> d = date.read()
>>> chardet をインポート
>>>chardet.detect(d)
{'confidence ': 0.99、'エンコーディング': 'utf-8'}