ホームページ >バックエンド開発 >Python チュートリアル >Pythonエンコーディングタイプの変換

Pythonエンコーディングタイプの変換

高洛峰
高洛峰オリジナル
2017-03-01 13:32:001139ブラウズ

この記事の例では、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 サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。