この記事の例では、Python のエンコード型の変換方法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
1: Python と Unicode
多言語テキストを正しく処理するために、Python はバージョン 2.0 以降 Unicode 文字列を導入しました。
2: Python で印刷
Python は処理のためにテキスト エンコーディングを Unicode エンコーディングに変換する必要がありますが、端末の表示作業は従来の Python 文字列によって行われます (実際、Python の print ステートメントはまったく印刷できません)。 Unicode でエンコードされた文字)。
Pythonのprintは、出力されるunicodeエンコード(その他の非unicodeエンコードの場合は、printがそのまま出力します)(コンソールに出力する場合)に自動的にエンコード変換を行いますが、fileオブジェクトのwriteメソッドではそれを行いませんそのため、一部の文字列が印刷で正常に出力される場合、ファイルへの書き込みと印刷が必ずしも同じになるとは限りません。
Linuxでは環境変数に応じて変換されますので、Linuxではlocaleコマンドを使用することで確認できます。 print ステートメントの実装は、出力するコンテンツをオペレーティング システムに送信することであり、オペレーティング システムはシステムのエンコーディングに従って入力バイト ストリームをエンコードします。
>>>str='学习python' >>> str '\xe5\xad\xa6\xe4\xb9\xa0python' #asII编码 >>> print str 学习python >>> str=u'学习python' >>> str ####unicode编码 '\xe5u\xad\xa6\xe4\xb9\xa0python'
3: Pythonでデコードします
他の文字セットをUnicodeエンコードに変換します(変換する必要があるのは漢字のみです)
>>> str='学习' >>> ustr=str.decode('utf-8') >>> ustr u'\u5b66\u4e60'
このようにして、中国語の文字がコード化され、変換されます以降の処理には Python を使用できます (変換しない場合、Python はマシンの環境変数に基づいてデフォルトのエンコード変換を実行するため、文字化けが発生する可能性があります)
4: Python でエンコードします
他の文字 Set
>>> str='学习' >>> ustr=str.decode('utf-8') >>> ustr u'\u5b66\u4e60' >>> ustr.encode('utf-8') '\xe5\xad\xa6\xe4\xb9\xa0' >>> print ustr.encode('utf-8') 学习
Python エンコード型変換に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。