検索
ホームページバックエンド開発Python チュートリアルButong Python 中国語問題解決法(多くの先人の経験をまとめた初心者必読)

Python には独自のドキュメントが付属しているため、ヘルプ機能を使用して各システム関数の使用方法の説明を問い合わせることができます。基本的に、本システムのドキュメントには主な使用方法や注意事項が明記されております。システムマニュアルの機能説明の中国語版をインターネットで探してみましたが、見つからなかったので、システム独自の機能説明の英語版を利用して学ぶことにしました。

Tkinter と wxPython でプログラミングしたい、一般的なウィジェットの使い方やプロパティの導入方法を知りたい、英語があまり得意でないという方は、本書の「Python と Tkinter プログラミング」を読むことをお勧めします。 , 392 ~ 538 ページの付録 B と付録 C では、よく使用される機能とほぼすべての属性が選択されて紹介されており、見逃せません。

上で述べたツールはすぐに完成しました。クエリされていない関数をクエリし、キーワード キーとクエリ結果の情報を保存して、チェックしていないことがわかった場合は、次回リストから直接チェックできるようにすることができます。 list - それは非常に単純なガジェットです。すべてがうまくいっているようです。しかし、問題も発生します。英語の情報を開いた後、説明内のいくつかの単語の意味がわかりません。単語を確認した後、情報を保存した後、直接開くことができます。次回はハードディスク。ただし、英語の情報に中国語を入力すると、保存処理中にデコードできないという問題が発生します。つまり、中国語部分にデコードするときに、次のエラーが表示されます:

UnicodeEncodeError: ' ascii' コーデックは位置 61 の文字 u 'u6211' をエンコードできません: 序数が範囲 (128) にありません

位置 61 は柔軟であり、情報に中国語の文字が追加される位置です。このエラーは基本的に常に存在します。つまり、変更された情報をファイルに書き込みたい場合です:

コードをコピー コードは次のとおりです:

fp = open('tt.txt','w')
fp.write(info.encode("UTF-8")) # ここにエラーがあります
fp.close()

この 3 行自体は間違っていないようです。しかし、コードの中間行でエラーが発生しました。エンコード方法が間違っているのでしょうか? ANSI、UTF-8、SHIFT_JIS、GB2312、GBK、その他のエンコーディングなど、多くのエンコーディングを試しましたが、どれも機能しません。それで私は混乱しました。

今、なぜうまくいかなかったのか分かりました。問題は、変更された情報文字列変数にあります。 info のデータは、ヘルプ機能を通じてシステム内で見つけた文字列 (つまり、元の純粋な英語の情報) に手動で入力した中国語を加えて取得した包括的な文字列です。システムからシステム ドキュメントをクエリするときは、元の情報を次のように保存します:
コードをコピー コードは次のとおりです:

fp = open('tt.txt','w')
fp.write(info)
fp.close()

間違いは直接write 元の情報はファイルに直接書き込まれます。これを書いた後、エンコード方法が何であるか知っている人はいますか? tt.txtを開いてエンコード方式を確認すると、ANSI形式であることがわかります。したがって、次のようなエラーが発生しました。キーワード キーをクエリし、ANSI 形式の文字列情報をコントロールに読み込んで表示し、次に手動で UTF-8 形式の中国語文字を追加したため、それらを接続して形成された文字列は Info です。複数のエンコード方式による文字列情報の混同。システムがどのように記述しても、1 つのエンコード方式だけを使用してこの混合文字列情報を tt.txt に再度書き込むことはできません。

したがって、結論としては、メモリ上で操作する場合、エンコード方法は何でもよく、具体的な状況に応じてシステムが自動的に判断します。ただし、漢字を使用してファイルにデータや文字列を一時的に保存する場合は、初めてファイルを書き込むときに次のように UTF-8 形式で記述する必要があります。メソッド:
コードをコピー コードは次のとおりです:

fp = open('tt.txt','w')
fp.write(info) .encode("UTF-8"))
fp.close()

これにより、制御テキストであっても、次回印刷および表示するときにエンコードを変換せずに直接読み取ることができます。 、問題ありません。必ずご注意ください。

問題が見つかりました。以下でその他の議論をしましょう。

# -*-coding: utf-8 -*- さえ使えれば十分ではないかという人もいる。あまり。

テストに合格しました (IDLE (Python2.5.4 GUI) コンパイラを使用しています。 [1] # -*-coding: utf-8 -*- を先頭に使用するかどうか、または設定されているかどうかソフトウェアでは、デフォルトの utf-8 エンコード方式を使用することに加えて、コントロールとファイルの間に中国語を使用することも問題ありません。その理由は、コンパイラのアップグレードにより、初期の中国語の表示と使用の問題が解決されたためです。
コードをコピーします。 コードは次のとおりです:

#coding=utf-8
試してみます:
JAP=open("jap.txt","r")
CHN=open("chn.txt","r" )
UTF=open("utf.txt","w")

jap_text=JAP.readline()
chn_text=CHN.readline()
#最初に UTF にデコードします- 16. 次にUTF-8にエンコードします
jap_text_utf8=jap_text.decode("SHIFT_JIS").encode("UTF-8")
#utf-8に変換しなくてもできます
chn_text_utf8=chn_text .decode("GB2312").encode("UTF-8")
#エンコード方式は大文字でも小文字でもUTF-8は同じ
UTF.write(jap_text_utf8)
UTFです。 write(chn_text_utf8)
UTF.close()
例外 IOError,e:
print "open file error",e

これは http:// から取得したものですwww.jb51.net/article/26542 記事「Python コーディングを扱うための Python の学習」から抜粋したコード (.htm)。上記の jap_text_utf8 と chn_text_utf8 は、マシンのデフォルトのエンコード方式であること、または utf-8 エンコード方式であることを保証する必要があります。最も重要なことは、一貫性があることです。それを utf-8 に均一にエンコードした後、問題なくファイルに書き込んで読み取って再度使用することができます。読み取るときは、次の通常の方法を使用します。
コードをコピーします コードは次のとおりです:

filen = open(' tt.txt')
info = filen.read()
print info

また。誰かが次のメソッドを使用してエンコードと変換を行いました:
コードをコピー コードは次のとおりです:

import sys
リロード (sys)
sys.setdefaultencoding('utf8')

def ConvertCN(s):
return s.encode('gb18030')

def PrintFile(filename) :
f = file(filename, 'r')
for f_line in f.readlines():
print ConvertCN(f_line)
f.close()

if __name__ = = "__main__":
PrintFile('1.txt')
print ConvertCN("n****** 終了するには任意のキーを押してください! ******")
print sys .stdin .readline()

私のテストによると、このメソッドは実行可能ではありません。 2 行目が削除されると、3 行目の setdefaultencoding 関数は無効になります。2 行目が保持されると、3 行目以降のコードは実行されません (ただし、エラーは報告されません)。この方法が実現可能であればぜひ試してみてください。
さらに、記事「Python における中国語の文字化けコードの問題の詳細な分析」http://www.jb51.net/article/26543.htm では、テキストのエンコード方法に関する多くの問題について説明されており、私の目を開かせてくれました。 。テキストエンコーディングの原理: 内部エンコーディング方法を示すために適切なコメント記号がテキストの先頭に追加されることが判明したため、インタプリタは特定の対応するルールを使用して、特定のバイトステップサイズまたは柔軟なステップサイズに従って単語を翻訳します。このセクションでは、原文が取得され、ステップの長さと翻訳のルールは冒頭の説明に完全に対応しています。したがって、テキストがシングルバイト エンコードの場合は、エンコードの先頭に適切なルールを追加して、エンコードされたテキストの翻訳方法を他の人に伝えることができます。その中で、BOM_UTF_8 などのテキストの末尾の知識も非常に興味深いものであり、BOM_UTF_16 なども同様に、テキストの末尾にある記号が異なります。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Python vs. C:比較されたアプリケーションとユースケースPython vs. C:比較されたアプリケーションとユースケースApr 12, 2025 am 12:01 AM

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

2時間のPython計画:現実的なアプローチ2時間のPython計画:現実的なアプローチApr 11, 2025 am 12:04 AM

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Python:主要なアプリケーションの調査Python:主要なアプリケーションの調査Apr 10, 2025 am 09:41 AM

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間でどのくらいのPythonを学ぶことができますか?2時間でどのくらいのPythonを学ぶことができますか?Apr 09, 2025 pm 04:33 PM

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は?プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は?Apr 02, 2025 am 07:18 AM

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか?中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか?Apr 02, 2025 am 07:15 AM

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

Python 3.6にピクルスファイルをロードするときに「__Builtin__」モジュールが見つからない場合はどうすればよいですか?Python 3.6にピクルスファイルをロードするときに「__Builtin__」モジュールが見つからない場合はどうすればよいですか?Apr 02, 2025 am 07:12 AM

Python 3.6のピクルスファイルのロードレポートエラー:modulenotFounderror:nomodulenamed ...

風光明媚なスポットコメント分析におけるJieba Wordセグメンテーションの精度を改善する方法は?風光明媚なスポットコメント分析におけるJieba Wordセグメンテーションの精度を改善する方法は?Apr 02, 2025 am 07:09 AM

風光明媚なスポットコメント分析におけるJieba Wordセグメンテーションの問題を解決する方法は?風光明媚なスポットコメントと分析を行っているとき、私たちはしばしばJieba Wordセグメンテーションツールを使用してテキストを処理します...

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません