ホームページ >バックエンド開発 >Python チュートリアル >Python2 で中国語名ファイルが文字化けする問題の解決策

Python2 で中国語名ファイルが文字化けする問題の解決策

高洛峰
高洛峰オリジナル
2017-03-24 17:04:301521ブラウズ

Python2 はデフォルトでは中国語をサポートしていません。通常、この問題を解決するにはプログラムの先頭に #-*-coding:utf-8-*- を追加しますが、open() メソッドを使用してファイルを開くと、 , 中国語の名前 しかし文字化けして表示されます。

まず Python のエンコーディングの問題について説明します。Python の文字列は str と Unicode の 2 つの形式に大別されます。str の一般的に使用されるエンコーディング タイプは utf-8、gb2312、gbk などです。Python では Unicode が使用されます。エンコードの基本タイプ。 str レコードはバイト配列であり、最終的にファイルに出力または印刷される形式は、デコード エンコードによってどのようにデコードされるかに完全に依存します。Unicode は、抽象コーディングに似たシンボル セットです。 、シンボルのバイナリ コードを規定するだけで、このバイナリ コードをどのように保存するかについては規定していません。つまり、それは内部表現にすぎず、直接保存することはできないため、保存する際に保存形式を指定する必要があります。 utf-8として待機します。

Pythonのエンコード変換関数は次のとおりです:

decode(char_set) char_setデコードをUnicodeに実装するencode(char_set) Unicodeエンコードをchar_setに実装します


Python2 で中国語名ファイルが文字化けする問題の解決策

Pythonのドキュメントを見ると、 find:

open (filename, 'w') このメソッドでは、filename パラメータは Unicode でエンコードされたパラメータである必要があります。

以前に #-*-coding:utf-8-*- を追加して、エンコーディングを utf-8 に設定しました。このメソッドを呼び出してパラメーターを渡す場合、変数ファイル名を Unicode にデコードする必要があります。

例えば、filename='中国語.txt'の場合、open()を使用する場合、open(filename.decode('utf-8'), 'w')のように書くと、作成される中国語のファイル名には文字化け。


以上がPython2 で中国語名ファイルが文字化けする問題の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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