ASCIIテキストとUnicodeテキストの違いは何ですか?

ASCIIテキストとUnicodeテキストの違いは何ですか?

ASCIIとUnicodeはどちらも、テキストのデジタル表現、特にテキストを構成する文字を参照する標準です。ただし、2つの標準は大幅に異なり、多くのプロパティはそれぞれの作成順序を反映しています。





アメリカ対宇宙

情報交換のためのアメリカ標準コード(ASCII)は、当然のことながら、英語のアルファベットで書くアメリカの聴衆に対応しています。 A-Zやa-zなどのアクセントのない文字に加えて、少数の句読記号と制御文字を扱います。





特に、他の言語から採用された外来語を表現する方法はありません。 コーヒー ASCIIで、アクセント付き文字を置き換えることによってそれらを角度付けせずに(例: カフェ )。ローカライズされたASCII拡張機能は、さまざまな言語のニーズに対応するために開発されましたが、これらの取り組みにより相互運用性が厄介になり、ASCIIの機能が明らかに拡張されていました。





対照的に、Universal Coded Character Set(Unicode)は、野心スケールの反対側にあります。 Unicodeは、古代言語と誰もが好む表現記号のセットである絵文字をカバーする範囲で、可能な限り多くの世界の書記体系に対応しようとします。

文字セットまたは文字エンコード?

簡単に言うと、文字セットは文字の選択(A〜Zなど)であり、文字エンコードは文字セットとデジタル表現可能な値(A = 1、B = 2など)の間のマッピングです。



ASCII標準は、事実上両方です。それは、それが表す文字のセットと、各文字を数値にマッピングする方法を定義します。

対照的に、Unicodeという単語は、さまざまな意味でいくつかの異なるコンテキストで使用されます。これは、ASCIIのように、文字セットといくつかのエンコーディングを指す包括的な用語と考えることができます。ただし、エンコーディングは複数あるため、Unicodeという用語は、マッピング方法ではなく、文字セット全体を指すためによく使用されます。





サイズ

その範囲のため、UnicodeはASCIIよりもはるかに多くの文字を表します。標準ASCIIは、7ビット範囲を使用して128個の個別のエンコードを行います 文字 。一方、Unicodeは非常に大きいため、それについて話すためだけに別の用語を使用する必要があります。

Unicodeは1,111,998アドレス可能に対応 コードポイント。 コードポイントは、キャラクター用に予約されたスペースにほぼ似ていますが、詳細を調べ始めるときよりも状況がはるかに複雑になります。





より有用な比較は、現在サポートされているスクリプト(または書記体系)の数です。もちろん、ASCIIは英語のアルファベット、基本的にはラテン文字またはローマ字のみを処理します。 2020年に作成されたUnicodeのバージョンはさらに進んでおり、合計154個のスクリプトがサポートされています。

ストレージ

ASCIIの7ビット範囲は、各文字が単一の8ビットバイトに格納されることを意味します。スペアビットは標準ASCIIでは使用されません。これにより、サイズの計算が簡単になります。文字単位のテキストの長さは、バイト単位のファイルのサイズです。

これは、次の一連のbashコマンドで確認できます。まず、12文字のテキストを含むファイルを作成します。

オンラインで本を購入するのに最適な場所
$ echo -n 'Hello, world' > foo

テキストがASCIIエンコーディングであることを確認するには、 ファイル 指図:

$ file foo
foo: ASCII text, with no line terminators

最後に、ファイルが占める正確なバイト数を取得するには、 指図:

$ stat -f%z foo
12

Unicode標準ははるかに広い範囲の文字を処理するため、Unicodeファイルは当然より多くのストレージスペースを占有します。正確な量はエンコーディングによって異なります。

ASCIIで表現できない文字を使用して、以前と同じコマンドセットを繰り返すと、次のようになります。

$ echo -n '€' > foo
$ file foo
foo: UTF-8 Unicode text, with no line terminators
$ stat -f%z foo
3

その1文字はUnicodeファイルで3バイトを占めます。 ASCIIファイルは選択した文字(€)を格納できないため、bashはUTF-8ファイルを自動的に作成することに注意してください。 UTF-8は、Unicodeの最も一般的な文字エンコードです。 UTF-16とUTF-32は2つの代替エンコーディングですが、使用される量ははるかに少なくなっています。

UTF-8は可変幅エンコーディングです。つまり、コードポイントごとに異なる量のストレージを使用します。各コードポイントは1〜4バイトを占有し、より一般的な文字に必要なスペースが少なくてすむため、一種の組み込み圧縮が提供されます。欠点は、テキストの特定のチャンクの長さまたはサイズの要件を決定することがはるかに複雑になることです。

ASCIIはUnicodeですが、UnicodeはASCIIではありません

下位互換性のために、最初の128個のUnicodeコードポイントは同等のASCII文字を表します。 UTF-8はこれらの各文字を1バイトでエンコードするため、ASCIIテキストもUTF-8テキストです。 UnicodeはASCIIのスーパーセットです。

ただし、上記のように、多くのUnicodeファイルはASCIIコンテキストでは使用できません。範囲外の文字は予期しない方法で表示され、多くの場合、意図したものとは完全に異なる置換文字が使用されます。

現代の使用法

ほとんどの場合、ASCIIは主にレガシー標準と見なされます。ラテン語のスクリプトのみをサポートする状況(たとえば、Unicodeの複雑さを完全にサポートする必要がない場合)でも、通常はUTF-8を使用し、そのASCII互換性を利用する方が便利です。

フォーマットせずにテキストをコピーする方法

特に、Webページは、HTML5のデフォルトであるUTF-8を使用して保存および送信する必要があります。これは、Latin1に取って代わられる前にデフォルトでASCIIで処理されていた以前のWebとは対照的です。

変化する基準

ASCIIの最後の改訂は1986年に行われました。

対照的に、Unicodeは毎年更新され続けます。新しいスクリプト、文字、特に新しい絵文字が定期的に追加されます。これらのごく一部が割り当てられているだけで、完全な文字セットが成長し、予見可能な将来に成長する可能性があります。

関連している: 最も人気のある100の絵文字の説明

ASCIIとUnicode

ASCIIは何十年にもわたってその目的を果たしてきましたが、Unicodeは現在、レガシーシステム以外のすべての実用的な目的のために効果的に置き換えています。 Unicodeはより大きく、したがってより表現力があります。これは、世界規模の共同作業を表しており、多少の複雑さは犠牲になりますが、はるかに高い柔軟性を提供します。

共有 共有 つぶやき Eメール ASCIIテキストとは何ですか?どのように使用されますか?

ASCIIテキストは不可解に見えますが、インターネット上で多くの用途があります。

次を読む
関連トピック
  • テクノロジーの説明
  • 絵文字
  • 専門用語
  • Webカルチャー
  • Unicode
著者について ボビージャック(58の記事が公開されました)

ボビーは、20年のほとんどの間ソフトウェア開発者として働いた技術愛好家です。彼はゲームに情熱を注いでおり、Switch Player Magazineのレビュー編集者として働いており、オンラインパブリッシングとウェブ開発のあらゆる側面に没頭しています。

ボビージャックのその他の作品

ニュースレターを購読する

ニュースレターに参加して、技術的なヒント、レビュー、無料の電子書籍、限定セールを入手してください。

購読するにはここをクリックしてください