違い: 1. ASCII エンコードは 1 バイトですが、Unicode エンコードは通常 2 バイトです。 2. ASCII はシングルバイトエンコーディングであり、中国語を表すために使用することはできません。Unicode はすべての言語を表すことができます。 3. Unicode エンコードには、ASCII エンコードの 2 倍のストレージ容量が必要です。
このチュートリアルの動作環境: Windows 7 システム、Dell G3 コンピューター。
ASCII エンコード
- ASCII コードは、指定された 7 ビットまたは 8 ビットの 2 進数の組み合わせを使用して、128 または 256 個の可能な文字を表します。標準 ASCII コード (基本 ASCII コードとも呼ばれます) は、7 つの 2 進数 (残りの 1 つの 2 進数は 0) を使用して、すべての大文字と小文字、0 ~ 9 の数字、句読点、およびアメリカ英語で使用される特殊なコントロールを表します。最後のビットはパリティ チェックに使用されます。
- 問題: ASCII はシングルバイト エンコーディングであり、中国語を表すのに使用できません (中国語のエンコーディングには少なくとも 2 バイトが必要です)。そのため、中国は中国語をエンコードする GB2312 エンコーディングを策定しました。しかし、世界にはさまざまな言語が存在するため、統一されたエンコーディングが必要です。
Unicode
- Unicode はすべての言語を 1 つのコード セットに統合するため、文字化けは発生しません。文字の問題。
- Unicode では、文字を表すために最も一般的に 2 バイトが使用されます (非常に離れた文字を使用する場合は、4 バイトが必要です)。最新のオペレーティング システムとほとんどのプログラミング言語は Unicode を直接サポートしています。
Unicode と ASCII の違い
- ASCII エンコードは 1 バイトですが、Unicode エンコードは通常 2 バイトです。
文字 A の ASCII エンコードは、10 進数で 65、2 進数で 01000001 です。Unicode では、前に 0 を追加するだけで済みます (00000000 01000001)。
- 新たな問題: Unicode エンコードに統一されれば文字化けの問題は解消されます。ただし、作成するテキストが基本的にすべて英語の場合、Unicode エンコードは ASCII エンコードの 2 倍のストレージ容量を必要とし、ストレージと送信の点で非常に不経済です。
UTF8
- したがって、保護の精神に基づいて、Unicode エンコーディングを「変数」に変換するという別のアイデアがあります。ロングエンコーディング」UTF-8エンコーディング。
- UTF-8 エンコーディングは、Unicode 文字をさまざまな数値サイズに応じて 1 ~ 6 バイトにエンコードします。一般的に使用される英語の文字は 1 バイトにエンコードされます。中国語の文字は通常 3 バイトで、いくつかの珍しい文字のみがエンコードされます。 4 ~ 6 バイトにエンコードされます。送信するテキストに英語の文字が多く含まれている場合は、UTF-8 エンコードを使用するとスペースを節約できます。
#文字 | ASCII | Unicode | UTF-8 |
#A
01000001 |
00000000 01000001 |
01000001 |
|
中文
x |
01001110 00101101 |
01001110 00101101 |
|
#上記の表から、UTF-8 エンコーディングには追加の利点は、ASCII エンコードを実際には UTF-8 エンコードの一部とみなすことができるため、ASCII エンコードのみをサポートする多くの歴史的なレガシー ソフトウェアが UTF-8 エンコードでも引き続き動作できることです。
- コンピュータにおける一般的な文字エンコーディングの仕組み
コンピュータのメモリでは、ハード ディスクに保存する必要がある場合、または転送する必要がある場合に、Unicode エンコーディングが一律に使用されます。 UTF-8にエンコードされます。
- メモ帳で編集すると、ファイルから読み込んだ UTF-8 文字が Unicode 文字に変換されてメモリに保存され、編集完了後、保存時に Unicode が UTF-8 に変換されます。ファイルへ:
-
# Web を閲覧すると、サーバーは動的に生成された Unicode コンテンツを UTF-8 に変換し、ブラウザに送信します。
-
さらに関連する知識については、
FAQ
列をご覧ください。
以上がUnicode と ASCII の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。