ANSIやUnicodeのような文字エンコーディングとは何ですか、またどう違うのですか?
ASCII、UTF-8、ISO-8859…あなたはこれらの奇妙なモニカがあちこちに浮かんでいるのを見たことがあるかもしれませんが、それらは実際にどういう意味ですか?文字エンコーディングとは何か、そしてこれらの頭字語が画面に表示されるプレーンテキストとどのように関連しているのかを説明しながら読んでください。.
基本ビルディングブロック
私たちが書いた言語について話すとき、私たちは文字が単語の構成要素であることについて話します。そして、それはそれから文、段落などを構築します。文字は音を表す記号です。あなたが言語について話すとき、あなたは一緒になってある種の意味を形成する音のグループについて話しています。各言語システムには、それらの意味を左右する一連の複雑な規則と定義があります。あなたが言葉を持っているならば、それがあなたがそれがどの言語に由来するかを知らず、そしてあなたがその言語を話す他の人たちと一緒にそれを使うのでなければ無用です.
(Grantha、Tulu、およびMalayalamスクリプトの比較、ウィキペディアからの画像)
コンピュータの世界では、「文字」という用語を使用します。文字は、特定のパラメータによって定義される一種の抽象的な概念ですが、それは意味の基本単位です。ラテン語の「A」は、ギリシャ語の「alpha」やアラビア語の「alif」とは異なります。文脈が異なり、言語が異なり、発音もわずかに異なるためです。したがって、これらは異なる文字であると言えます。文字の視覚的表現は「グリフ」と呼ばれ、グリフのさまざまなセットはフォントと呼ばれます。文字のグループは、「セット」または「レパートリー」に属します。
段落を入力してフォントを変更しても、文字の音声値は変更されず、外観が変わります。それは単なる化粧品です(しかし重要ではありません!)。古代エジプト語や中国語などの一部の言語には表意文字があります。これらは音ではなくアイデア全体を表しており、その発音は時間と距離によって変化します。ある文字を別の文字に置き換えると、アイデアが変わります。文字を変えるだけでなく、表意文字を変えることができます.
文字コード
(ウィキペディアからの画像)
キーボードで何かを入力したり、ファイルをロードしたりすると、コンピュータは表示するものをどのように認識しますか?それが文字エンコーディングの目的です。あなたのコンピュータ上のテキストは実際には文字ではなく、それは一連の対になった英数字の値です。文字エンコーディングは、正字法がどの音がどの文字に対応するかを決定する方法と同じように、どの値がどの文字に対応するかのキーとして機能します。モールス符号は一種の文字エンコーディングです。ビープ音のような長い単位と短い単位のグループが文字を表す方法について説明します。モールス符号では、文字は英語の文字、数字、およびフルストップです。文字、数字、アクセント記号、句読点、国際記号などに変換されるコンピュータ文字エンコーディングは数多くあります。.
このトピックでは、しばしば「コードページ」という用語も使用されます。それらは本質的に特定の会社によって使用されるような文字エンコーディングであり、しばしばわずかな修正を伴います。たとえば、Windows 1252コードページ(以前はANSI 1252と呼ばれていました)は、ISO-8859-1の修正版です。これらは主に、同じシステムに固有の標準文字エンコーディングと修正文字エンコーディングを指すための内部システムとして使用されています。コンピュータが互いに通信しないので、初期の段階では、文字エンコードはそれほど重要ではありませんでした。インターネットが目立つようになり、ネットワーキングが一般的に行われるようになると、それを認識することなく、日常生活の中でますます重要になっています。.
さまざまな種類
(sarah sosiakからの画像)
そこにたくさんの異なる文字エンコーディングがあります、そしてそれにはたくさんの理由があります。どの文字エンコーディングを使用するかは、ニーズによって異なります。ロシア語でコミュニケーションをとるなら、キリル文字をうまくサポートする文字エンコーディングを使うのは理にかなっています。韓国語でコミュニケーションをとるなら、ハングルとハンジャをよく表すものが欲しいでしょう。あなたが数学者であれば、すべての科学的および数学的記号、ギリシャ語およびラテン語のグリフをうまく表現したものが必要です。あなたがいたずら者であれば、多分あなたは逆さまのテキストから利益を得るでしょう。また、これらの種類の文書すべてを特定の人が閲覧できるようにするには、かなり一般的で簡単にアクセスできるエンコーディングが必要です。.
もっと一般的なものを見てみましょう。.
(ASCIIテーブルの抜粋、asciitable.comからの画像)
- ASCII - 情報交換用のアメリカ標準コードは、より古い文字コードの1つです。もともとは電信コードに基づいて考案され、より多くの記号や現在は時代遅れのいくつかの印刷されていない制御文字を含むように進化しました。アクセント文字のないラテンアルファベットに限定されているので、それはおそらくあなたが現代のシステムに関して得ることができるのと同じくらい基本的です。 7ビットエンコーディングでは128文字しか使用できないため、世界中で非公式の亜種がいくつか使用されています。.
- ISO-8859 - 国際標準化機構の最も広く使用されている文字エンコーディングのグループは番号8859である。各特定のエンコーディングは番号で指定され、しばしば説明的なモニカー、例えばISO-8859-3(Latin-3)、ISO-8859-6(Latin / Arabic)。これはASCIIのスーパーセットです。つまり、エンコードの最初の128個の値はASCIIと同じです。しかし、それは8ビットで、256文字を許容するので、そこから構築されて、より広い範囲の文字を含み、それぞれの特定のエンコーディングは異なるセットの基準に焦点を合わせています。 Latin-1にはたくさんのアクセント付きの文字や記号が含まれていましたが、後でLatin-9と呼ばれる修正されたセットに置き換えられ、ユーロ記号のような更新されたグリフが含まれます。.
(unicode.orgからのチベット語のスクリプト、Unicode v4の抜粋)
- Unicode - この符号化規格は、普遍性を目的としています。現在、いくつかのブロックに分けられた93のスクリプトが含まれています。 Unicodeは、グリフを直接コーディングする代わりに、各値が「コードポイント」に直接向かうという点で他の文字セットとは異なります。これらは文字に対応する16進値ですが、グリフ自体はプログラムによって切り離されて提供されます。あなたのWebブラウザなど。これらのコードポイントは一般的に次のように表されます:U + 0040(これは '@'に変換されます)。 Unicode規格の下での特定のエンコーディングはUTF-8とUTF-16です。 UTF-8は、ASCIIとの最大限の互換性を確保しようとしています。これは8ビットですが、置換メカニズムと1文字あたりの値の複数のペアによって、すべての文字を使用できます。標準とのより完全な16ビット互換性のためにUTF-16は完全なASCII互換性を捨てます.
- ISO-10646 - これは実際のエンコーディングではなく、ISOによって標準化されたUnicodeの文字セットです。 HTMLで使用されている文字レパートリーであるため、これは最も重要です。左から右へのスクリプティングと並びに右から左への照合を可能にするUnicodeによって提供されるより高度な関数のいくつかは欠けています。それでも、多種多様なスクリプトの使用を可能にし、ブラウザがグリフを解釈できるようにするので、インターネット上での使用には非常に適しています。これはローカライズをいくらか簡単にします.
どのエンコーディングを使うべきか?
さて、ASCIIはほとんどの英語の話者のために働きますが、他の多くのためには働きません。もっと頻繁にあなたはISO-8859-1を見ているでしょう、それはほとんどの西ヨーロッパの言語のために働きます。 ISO-8859の他のバージョンは、キリル文字、アラビア文字、ギリシャ文字、またはその他の特定の文字で動作します。ただし、同じドキュメントまたは同じWebページに複数のスクリプトを表示したい場合は、UTF-8を使用すると互換性が大幅に向上します。それはまた、適切な句読点、数学記号、または四角やチェックボックスのようなカフなしの文字を使う人々にとっても本当にうまくいきます。.
(1つの文書に複数の言語、gujaratsamachar.comのスクリーンショット)
ただし、各セットには欠点があります。 ASCIIは句読点が限られているので、誤植を修正するのに信じられないほどうまくいきません。グリフのいくつかの奇妙な組み合わせを持つためにWordからタイプコピー/ペーストしたことがありますか?これがISO-8859の欠点です。もっと正確に言えば、OS固有のコードページとの相互運用性が想定されています(私達はあなたを見ています、マイクロソフト!)。 UTF-8の主な欠点は、アプリケーションの編集および公開における適切なサポートの欠如です。もう1つの問題は、ブラウザがUTF-8でエンコードされた文字のバイトオーダーマークを解釈せずに単に表示することが多いということです。これにより、不要なグリフが表示されます。そしてもちろん、あるエンコーディングを宣言し、Webページ上でそれらを正しく宣言/参照せずに別のエンコーディングから文字を使用すると、ブラウザがそれらを正しくレンダリングしたり、検索エンジンがそれらを適切にインデックス付けしたりすることが難しくなります。.
あなた自身の文書、原稿などのために、あなたは仕事を終わらせるのに必要なものなら何でも使うことができます。しかしWebに関しては、ほとんどの人がバイトオーダーマークを使用しないUTF-8バージョンの使用に同意するようですが、それは完全に一致するわけではありません。ご覧のとおり、各文字エンコードには独自の用途、コンテキスト、長所と短所があります。エンドユーザーとして、あなたはおそらくこれに対処する必要はないでしょう、しかし今あなたが望むなら追加の一歩を踏み出すことができます.