ホームページ > バックエンド開発 > Python チュートリアル > Python2.7でWindowsのコマンドウィンドウに中国語の文字化けが出力される

Python2.7でWindowsのコマンドウィンドウに中国語の文字化けが出力される

巴扎黑
リリース: 2017-06-23 16:01:19
オリジナル
3259 人が閲覧しました

この記事の例は、Windows コマンド ウィンドウで Python ファイルを実行するときに生成される文字化けコードの問題について説明しています。ご参考までに:
追伸: 交換と学習を歓迎します。実行すると、出力結果は次のようになります:

# -*- coding:utf-8 -*-str = "彦雪"print str
ログイン後にコピー

コード化けの結果は他とは異なる場合がありますが、すべて文字化けコードです!!

問題分析

Python2のデフォルトのエンコードは「ascii」ですが、asciiエンコードはそうではありません中国語の文字が含まれています

中国語の文字が含まれている場合、Python インタプリタは通常、エラーが報告されます。

しかし、UTF-8 エンコーディングが指定されている場合、Python はエラーを報告しなくなります。

"# -

-coding:utf -8 -
-" は、Python ソース コードが UTF-8 でエンコードされることを指定します。

window のデフォルトのエンコードは gbk エンコードであるため、出力前に str を gbk としてエンコードする必要があります。 Python では utf-8 から gbk への直接変換が許可されていないため、まず utf-8 を unicode に変換してから gbk に変換する必要があります

詳細な分析


この方法の欠点は、クロスプラットフォームの場合です。問題が発生するため、Python は出力として Unicode を使用する便利な解決策を提供します - この方法は raw_input には適用されません

出力を印刷する必要がある場合、Python は最初に文字出力プログラム (コマンド ラインまたは出力関数) を呼び出します。 、文字出力プログラムが使用するエンコードに文字列をエンコードし(文字出力プログラムがエンコードを認識できないために文字化けが発生しないようにするため)、文字出力プログラムはエンコードされた文字を出力先に出力します。

解決策

褰﹂洩
ログイン後にコピー

# 方法一  中文前加u, 告诉Python解释器后面的是个unicode编码str = u"彦雪"
ログイン後にコピー

# 方法二  str.decode('utf-8') 以utf-8编码对字符串 str 进行解码, 获取unicodestr = "彦雪".decode('utf-8')
ログイン後にコピー
raw_inputを使用すると、Windowsのコマンドウィンドウで文字化けが表示されます
raw_inputを使用するには、中国語をシステムエンコーディングに変換する必要があり、方法は次のとおりです

# 方法三  unicode(str, 'utf-8') 将字符串 str 以utf-8编码解码, 获取unicodestr = unicode('彦雪','utf-8')
ログイン後にコピー

# 方法1  str.encode("gbk") 将unicode转为gbk 编码content = raw_input(u"输入内容: ".encode("gbk"))
ログイン後にコピー
りー
この記述方法は非常に便利ですが、クロスプラットフォーム効果は低く、漢字と raw_input を同じ行に記述することをお勧めします。他の手段で

拡張読書Pythonコーディング コメント# -

-coding:utf-8 -

-

PEP 263 -- Pythonソースコードエンコーディングの定義Pythonエンコーディング、文字化け、Unicodeに関するいくつかの研究

raw_input の入力、ファイルの読み取り、変数の比較など。 str 、unicode、utf-8 変換の問題

探索中

現在は退職していますが、待っている間、私が以前によく遭遇した問題を共有し、話し合うことができれば幸いです。誰にとっても役立つでしょう。修正は大歓迎です

知識を共有して、プログラミングの楽しさを楽しんでください

以上がPython2.7でWindowsのコマンドウィンドウに中国語の文字化けが出力されるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート