プログラミングにおける文字エンコーディングは、学習者をさらに憂鬱にするものです。たとえば、str がすべて英語であれば、説明がはるかに簡単になります。しかし、私たちが使わなければならないのは中国語ではありません。したがって、初心者でも文字コードの問題を理解し、解決できる必要があります。
>>> name = '老齐' >>> name '\xe8\x80\x81\xe9\xbd\x90'
プログラミング中に上記の状況に遭遇したことがありますか?一番下の行に何が印刷されているかわかりますか?人の英語を読んだほうがずっと良いです
>>> name = "qiwsir" >>> name 'qiwsir'
これは中国語のせいですか?どうやら転生は本当に技術的な仕事のようです。はい、転生は技術的な仕事ですが、上記の問題は中国人のせいではありません。
エンコーディング
エンコードとは何ですか?これはかなり謎めいた質問です。共通の定義を与えるのも簡単ではありません。何かの教科書で定義を見たことがありますが、彼の定義が間違っているとはあえて言いません。少なくとも理解するのは簡単ではありません。
古代の戦争では、攻撃するには太鼓を叩き、撤退するには金を支払いました。兵士に伝えられる命令は、「攻撃せよ」という命令など、他の特定の形式に相当します。そのような情報が送信された後は、次のようになります。
太鼓の音は、使者の喉が轟く音よりも空気中に広がり、遠くまで伝わります。一般に、太鼓の音をいびきの音だと考える兵士はいません。これが、「攻撃」コマンドをドラムビートにエンコードすることの利点です。
兵士たちは太鼓の鼓動を聞くとメッセージを受け取り、訓練を受けているか、誰かから言われていれば、私が攻撃するべきだと分かります。このプロセスはデコードです。したがって、2 セットのコーディング スキームが存在します。 1 つのセットはメッセージの送信側にあり、もう 1 つのセットはメッセージの受信側にあります。解読後、兵士たちは理解し、行動を起こしました。
上記のプロセスは比較的簡単です。実際、実際のエンコードおよびデコードのプロセスはさらに複雑です。ただし、原理は似ています。
中国初の電信線は、1871 年にイギリス、ロシア、デンマークによって香港から上海を経由して日本の長崎まで敷設された海底ケーブルでした。清政府の反対により、ケーブルは上海に上陸することを禁止された。その後、デンマークの会社は政府の禁止を無視して上海公民館まで回線を導き、6月3日から電報の送受信を開始した。最初の独自敷設路線としては、福建省総督の丁立昌によって台湾に建設され、1877 年 10 月に台南と高雄を結ぶ路線が完成しました。 1879 年、北洋大臣の李鴻章は軍事通信のために天津、大沽、北塘の間に電信線を設置しました。 1880年、李鴻章は盛玄淮を総局とする総電信局の設立を承認した。 1881年12月、天津から上海までの電信が開通した。李鴻章氏は、「過去5年間、我が国は河川沿いの省や沿岸部に1万マイル以上の電線を敷設してきた。国家はあまり支出しておらず、巨額の資金は民間部門から来ている」と述べた。当時、法務官が挑発し、将軍が軍事状況を報告し、裁判所が指示を伝え、そのすべてが実行された。古代以来、中国はこれほど迅速に軍隊を使用したことはありません。何千マイルも離れた使節と大臣の交流は、同じ中庭に住んでいるようなもので、外敵の侵入を防ぐだけでなく、国防を強化し、ビジネスにも有利になります。ゲンジ。 1887年、台湾総督の劉明伝は福州から台湾まで中国初の海底ケーブルを敷設した。 1884年、北京電信局の建設が始まり、「通州から首都まで複線を設置し、一方の端を官信を配達するために局内に導き、もう一方の端を便宜のために場所を選択するために使用する」という方法が採用されました。同年8月5日、電信線の建設が始まり、すべての電柱が赤く塗られた。 8月22日、北京市崇文門外街西側のXique Hutongに市外商業電信局が開設された。同年8月30日、崇文門の宝子河の西に位置し、官電の送受信を専門とする魯公堂が開業した。
電信部門では漢字を伝えるために、4桁の数字またはローマ字3文字からなるコード、すなわち中国電信コードを用意し、送信前に漢字を電信コードに書き換えてから電信コードを書き換えるという方式をとっていました。電報を受け取った後、漢字に変換します。
読者の皆様、電信で使用される「中国語電信コード」が登場することに注意してください。これは、中国語の文字を電信で送信できるように、漢字をアラビア数字に対応させる一種のコードです。
1873年、中国駐在フランス人ウィキジェは、『康熙字典』の急進配列法に基づいて常用漢字6,800字以上を選定し、初の漢字コードブック『新電書』を編纂した。
電信の暗号はモールス信号と呼ばれ、英語ではモールス信号
モールス信号(英語: Morse Code )は、英語の異なる文字、数字、句読点を異なる配列で表現した、オンとオフの信号符号です。 1836年にアメリカ人のサミュエル・モースによって発明されました。
モールス信号はデジタル通信の初期の形式ですが、0 と 1 の 2 つの状態のみを使用する現代のバイナリ コードとは異なります。そのコードには、ドット (.)、ダッシュ (-)、および各文字間のスペースの 5 種類が含まれます。短いポーズ (点とダッシュの間のポーズ)、各単語の間の中程度のポーズ、文間の長いポーズ
電信オペレーターは技術的な仕事であり、休止の長さによって意味が異なるようです。ああ、ところで、「The Wave That Never Dies」という古い映画がありますが、それを見るまでは分からないでしょうが、電信がどのようにエンコードされるかについてさえ言及していません。
モールス信号は、1999 年まで海上通信の国際標準として使用されていました。 1997 年、フランス海軍がモールス信号の使用を中止したとき、最後に送られたメッセージは「皆さん、これが永遠の沈黙の前の最後の叫びです!」でした。
長いこと見つめていましたが、この2行は同じではないでしょうか?
コンピュータの文字エンコーディング
まず、Wikipedia の文字エンコーディングの説明をコピーします:
世の中には、さまざまな文字コードが存在します。ただし、彼らはそれを自分たちだけで行うわけではありません。むしろ、ASCII と呼ばれるエンコーディングに基づく特定の基盤が必要です。これには北朝鮮も含まれるはずです (彼らがどのような文字エンコーディングを使用しているかは知りませんが、真剣に考えないでください)。はこの教科書の立場を表すものではなく、単に盲目的な想像を表すものです。)
ASCII (発音: 英語発音: /ˈæski/ ASS-kee1、American Standard Code for Information Interchange、American Standard Code for Information Interchange) は、ラテン文字に基づくコンピューターコーディングシステムです。主に現代英語の表示に使用されますが、その拡張バージョン EASCII は他の西ヨーロッパ言語を部分的にサポートでき、国際標準 ISO/IEC 646 と同等です。 World Wide Web により ASCII が広く使用されるようになり、2007 年 12 月までに徐々に Unicode に置き換えられました。
上の引用文で述べたように、現在私たちが使用しているコーディング標準は ASCII ではありません。私が大学にいたとき、私の先生はまだ ASCII を教えていました (最も恥ずかしいのは、あなたの国の大学教育です。私は大学卒業生に何人かインタビューしました。)数日前、コンピュータ専攻の彼は、先生がコーディング標準だと教えてくれたと私に言いました。先生を葬らないで、教科書を読んでください、と彼は本当に私にテキストメッセージを送りました。教科書に載っていると私は言いました)、時代が変わり、Unicodeになったので、Unicodeエンコードとは何ですか? Wikipedia から説明をコピーしてみます (この講義は qiwsir ではなく Wikipedia が行っていることを説明する必要があります。私は単なる脇役です、笑)
Unicode は、ユニバーサル文字セットの標準に基づいて開発され、本の形で出版されました。 Unicode は今日に至るまで継続的に改訂されており、バージョンが変わるたびにさらに新しい文字が追加されています。最新バージョンは 7.0.0 で、100,000 文字を超える文字が登録されています (100,000 文字は 2005 年に採用されました)。 Unicode でカバーされるデータには、視覚的なグリフ、エンコード方式、標準の文字エンコードに加えて、大文字と小文字などの文字特性も含まれます。
名前を聞いてください: Universal Code、中国語が含まれている必要があります。確かに。ただし、Unicode だけでは十分ではありません。なぜなら... (ここではいくつかの単語が省略されています。読者は上記の Wikipedia リンクにアクセスして確認できます)、他のエンコード実装方法もあり、Unicode 実装方法は Unicode Transformation Format と呼ばれます。 (略してUTF)ということで、よく見かけるutf-8があります。
utf-8 とは何ですか? ウィキペディアで何と書かれているか見てみましょう
引用は不要です。もっと見たい場合は、原文にアクセスしてください。
先ほどプログラムを書いていたときに、coding: utf-8 という言葉が出てきました。これは、使用したい文字エンコーディングを Python に伝えます。
エンコードとデコード
歴史の部分は終わったので、次は何でしょうか?それはもっと面倒です。だって、どう言っても一言で明確に説明できないからです。 2 つの組み込み関数 encode() と decode() から始めましょう。
codecs.encode(obj[,encoding[,errors]]):エンコード用に登録されたコーデックを使用して、obj をエンコードします。
codecs.decode(obj[,coding[,errors]]):エンコード用に登録されたコーデックを使用して、obj をデコードします。
python2 のデフォルトのエンコーディングは ascii です。オブジェクトのエンコーディングは、encode によって指定されたエンコーディング形式に変換できます。デコードは、このプロセスの逆のプロセスです。
理解するために実験を行ってください:
>>> タイプ(a)
>>>
'xe4xb8xad'
>>>レン(a)
3
>>> b = a.decode()
>>>
u'u4e2d'
>>> タイプ(b)
>>>レン(b)
1
上記の実験では、変数 a は文字列を参照します。いわゆる文字列 (str) は厳密にはバイト文字列であり、エンコードされたバイトのシーケンスです。つまり、上記の実験で表示されるのは、コンピューター内でエンコードされた後の単語「中」のバイト表現です。 (バイトについては、読者はグーグルで調べてください)。 len(a) を使用して、3 バイトからなるその長さを測定します。
次に、decode 関数を使用してバイト文字列を文字列に変換し、この文字列は Unicode に従ってエンコードされます。 Unicode エンコードでは、1 つの漢字が 1 つの文字に対応し、その長さは 1 です。
逆に、Unicode でエンコードされた文字列をバイト文字列に変換することもできます。
'xe4xb8xad'
>>> タイプ(c)
>>> c == a
本当
コーディングの問題については、まずここでやめましょう。言い続けると問題が起きるからです。読者はその理由がまだ分からず不満を抱いているに違いない。関係ないのでググってみたら解決しますよ。
Python で漢字が文字化けしないようにする方法
この質問は高度に操作性の高い質問です。参考までに、経験の概要をここに共有します:まず、utf-8 エンコーディング スキームはプラットフォーム間で優れているため、使用することをお勧めします。
経験 1: 冒頭のステートメント:
# -*- コーディング: utf-8 -*-
友人が私に、-*- の機能は何なのかと尋ねました。プログラマーはもちろん、誰もが見た目を良くするためのものです。もちろん、次のように書くこともできます:
経験 2: 文字 (セクション) 文字列を見つけたら、str() を使用せず、直接 unicode() を使用してください
print unicode_str.encode('utf-8')
経験 3: ファイルを操作する場合、open の代わりに codecs.open を使用するのが最善です (これについては後で説明しますが、最初にここに置きます)
コーデックをインポート
codecs.open('ファイル名', エンコーディング='utf8')
インターネット上の記事も集めました。これも読者におすすめします: Python2.x の中国語表示方法
最後に、Python3 を使用している場合は、不正なコーディングの問題を心配する必要はありません。

Pythonの柔軟性は、マルチパラダイムサポートと動的タイプシステムに反映されていますが、使いやすさはシンプルな構文とリッチ標準ライブラリに由来しています。 1。柔軟性:オブジェクト指向、機能的および手続き的プログラミングをサポートし、動的タイプシステムは開発効率を向上させます。 2。使いやすさ:文法は自然言語に近く、標準的なライブラリは幅広い機能をカバーし、開発プロセスを簡素化します。

Pythonは、初心者から上級開発者までのすべてのニーズに適した、そのシンプルさとパワーに非常に好まれています。その汎用性は、次のことに反映されています。1)学習と使用が簡単、シンプルな構文。 2)Numpy、Pandasなどの豊富なライブラリとフレームワーク。 3)さまざまなオペレーティングシステムで実行できるクロスプラットフォームサポート。 4)作業効率を向上させるためのスクリプトおよび自動化タスクに適しています。

はい、1日2時間でPythonを学びます。 1.合理的な学習計画を作成します。2。適切な学習リソースを選択します。3。実践を通じて学んだ知識を統合します。これらの手順は、短時間でPythonをマスターするのに役立ちます。

Pythonは迅速な開発とデータ処理に適していますが、Cは高性能および基礎となる制御に適しています。 1)Pythonは、簡潔な構文を備えた使いやすく、データサイエンスやWeb開発に適しています。 2)Cは高性能で正確な制御を持ち、ゲームやシステムのプログラミングでよく使用されます。

Pythonを学ぶのに必要な時間は、人によって異なり、主に以前のプログラミングの経験、学習の動機付け、学習リソースと方法、学習リズムの影響を受けます。現実的な学習目標を設定し、実用的なプロジェクトを通じて最善を尽くします。

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 中国語版
中国語版、とても使いやすい

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)
