などあなたが進バイトASCIIエンコードされたバイトのUnicode(UTF-8月16日)を理解するハンドストラップタッチ、(上)
ユニコード
ルールについて話を最初にすること
Unicode
通常(すべてではない)である文字を表すために2つのバイトを使用して16の文字(2進数)の文字を表すために
、もともとASCII
行う方法を変更した場合、コード決定どのようにああ、やる使用するマシンの多くを持っているが、?
問題ではないUnicode
:あなただけの席が、うまくゼロにアクセスすることはできません入力する必要が
ちょうど例えば、
01000001 在 ASCII 码里表示 大写字母 'A'
那你就补0
补成 00000000 01000001
Unicodeのこのようなものが、すべてのコードを統一するために、それは当然、一緒にすべてのプットを見つけることは容易ではありませんが、含まれるべき異なる言語の多くを持つことになります
ので、そのパケットのストレージに含まれるUnicode文字が記号の種類を格納するために置きます17個のグループに分割
され、
Unicodeは、文字コード体系は、国際機関による精緻化、世界のすべての兆候や記号を収容することができます。現在、17個のグループに編成Unicode文字には0x0000
から0x10FFFF、各々が平面(平面)と呼ばれ、各平面は、1,114,112の合計65536ヤードビットを有します。
コードビットは、シンボルを置く場所で、それは世界の文字のほとんどのコレクションを持っている、あなたは、Unicode面の非常に多くのポイントを見ることができますが、飛行機は実際には現在ほとんど使用されません。
さて、このようなものについて話し続けます由来
リングのコンピュータ交換が成長しているので、より多くのニーズの文字に組み込むことが、前述した。
あなたがしたいので、にああ、26通の英語の手紙の合計、プラス記号の数に
、中国語の文字だけに行きます大きな音文字に百数万の仕上げを表し、
そしてあなた自身の基準を、中国はに使用されるような指定に各国を再現しGB2312
に使用される標準的なASCII
リストに追加したコード以外の文字。
世界の結果ACコード化し、混乱
、2つの組織が世界のすべての文字に対応できるコーディングのセット開発する方法を見つけるために、独自に始めたある
それぞれ国际标准化组织(ISO)
のビルドにソフトウェアメーカーの数で同様に、统一码联盟
国際標準化機構(ISO) 、ユニバーサル文字セット「を開発しようとしている(ユニバーサル文字セットを、UCSと呼ばれる)、そして最終的にISO 10646の規格外に働いた。
ユニコードコンソーシアムは、 Unicodeを開発した(これは、Unicode 1.0で、フォローアップは、の話されます、そして私たちのテーマUnicodeの差)
理由を理解する最初のされていない国际标准化组织
開発しようとすると通用字符集(UCS)
発表しましたISO 10646
おそらく知っている统一码联盟
、それは打ち上げUnicode 1.0
、国际标准化组织
打ち上げISO 10646
の行に
コード化された打ち上げの両方のセット目的 あまりにも多くの文字の問題を解決することであり、世界の既存のコードでは十分ではありません。
1991年までは、多分彼らの研究は、まだ自分自身のコーディングを設定されているが、彼らは彼のはげ頭を撫で、何を知っているかのように整理
なぜ世界はそれをコーディング世界の2すべての文字に対応できると互換性がないことが必要ですか?
彼ら二人は、ああ失いたくない二つの側面、また合併し、自分の仕事の結果をマージし始めたので、あなたはシンシナティ苦い家にしたくありません
他者によるビターメロンの種が離れて彼を盗む?それは妥協点を見つけるために、聖歌を議論するために議論するために、ああ、確かにNazanではありません。
初めからユニコード2.0、同じフォントおよびISO 10646-1ワードを使用してユニコード; ISOも約束、ISO
10646は、UCS-4コードU + 10FFFF割り当てので、一貫性の両方について超えないであろう。どちらのプロジェクトはまだそこにあり、かつ独立してその基準をリリース。
これは、彼らが探しているの妥協である、我々はゆっくりと前記します
同じフォントや文字コードを使用して、最初からユニコード2.0、UnicodeとISO 10646-1;
?あなたはそれが大体で何を意味する
のUnicodeコンソーシアム、言った:「一緒に私たちは二つの大きなものは、それは、両方の名前ああ、使用することはできませんしたい場合
はUnicode(ユニコード、ユニコード)あなたはで取得するよりも、より強力と横暴と子供の、あなたカンカン名を、ISOは、あなたが綴る与えることができるかわからない、多くのことを鳴らしたのiOSを右、悪いことができます?」
ああ、あなたはまた、子供の名前にうまくそれをしない」、しかし、あなたは私の全体を与えることができない私の仕事の結果は、ああ、あなたはあなたのコードセット、内部に入れて、私のプログラムを変更していないませんでした:国際標準化機構は、言いました!子どもたちは行きます。」
ユニコードコンソーシアムは思っ:!「それは仲間-2の涙 '、私は、あなたがいない変更を行うが、私は自分のコードベースは17平面に分割して入れ、同じフォントコードワードにあなたに言いましたU + 10FFFF "あなたは、後で再び戻っに追加プレーンを使用することを続けさせ、と私は戻って維持したいの前に
U + 10FFFFは:最後U +は、最初の10面は符号ビットされた後、第10面のUnicodeプレフィックスであり、
FFFFは、国際標準化団体上記未来を開発することを意味するがもはや超え得る最後の一つであります第十面。
国際標準化機構、文言った:「!で」
この事はので、2つのプロジェクトがまだある、上下セット、および独立してその基準を解放するが、彼らははっきりと新しい名前Unicodeを持っていましたさ!
完成Unicodeは話すようになりました
UFT - 8(16/32)
Unicodeのイェジンハオ、ASCIIコード上記または、文字セットが定義されていること、それは似ている、
私は指定された00001
漢字の代表を我
、提供することです、
我々は句読点を話すために毎日戦うために持っているのと同じように、これはUTF-8
UFT-16
UTF-32
句読点を再生するときに指定されたUnicode文字セットです。
既に述べたUnicodeエンコーディングとして、通常、2バイトであるが、他の文字は複数のバイトを占め、以下のバイトがあります
レッツ・セットが規定します
0000 0001 代表我在吃饭
1000 0101 1010 1000 0000 0000 0010 0001 代表我在洗澡
例えば、UTF-32
それは4バイト符号化固定占有することが容易にああである場合、私は浴中にあったことを表現するために32ビットであり、
ただ、言う1000 0101 1010 1000 0000 0000 0010 0001
それが表す我在洗澡
、
それが表現したいこと我在吃饭
、読むのが好き、ああ、行う方法、
読み取り0000 0001
だけでなく、私は固定ああ読んで32 位元
、この小さなあなたを24
1ああ、
私は埋めるためにあなたにいくつかのゼロを与えるでしょう?どのように行うのそれは、読み出しとなり
0000 0000 0000 0000 0000 0000 0000 0001
そして、それを返す、私の神は、明らかに一つだけ、あなたのバイト非常に多くのゼロアウトを読むために、パフォーマンスはその年齢では非常に高いものではない、彼はコーディングを変更する必要があるので、このアプローチは、非常に無駄ですこれがそう順序の最大の程度のパフォーマンスの利点を活用読み取るように設定され、
私たちは再びアナロジーを使用UTF-8
読み0000 0001
やすい学校の外に我在吃饭
、
それを読むことをしている場合我在洗澡
、
聞かせてのは、彼が、思ったどのように推測する
最初の私はオクテットを読み出し、通常のフォーマットに従って読ま1000 0101
この気に入りましたか?えっ、言葉は、私は再びそれを読むか?読んでまだです!1000 0101 1010 1000
、何????読んでいない
!私は力に引き続き見て1000 0101 1010 1000 0000 0000
、まだ私はそれを行う??長すぎる完了しなかった、それは!!読んで
安堵のため息をつい:!!!ああ最後に、あなたがそれを取る取るしたいコードを読み終え!1000 0101 1010 1000 0000 0000 0010 0001
あなたは見ることができUTF-32
、テキストを読むことができますUFT-8
が、読む必要があります4タイムズ紙は、これは、資源の無駄です
それは適切ではありませんが、読み取り後は、より良いが、しかし、余剰のプロパティの私たちの時代に、これらの符号化形式の消費はまだ素晴らしいパフォーマンスですので、
今、私たちは理解することができるはずですUTF-32 UFT-16 和 UTF-8
我々はまだ、より一般的ですが、UTF-8 しかし、最も適切なを選択するために、より大きな性能向上を達成するために
(ただし、ほとんどの時間や、最も適切なUTF-8)
二つの概念がありUCS-2、UCS-4
UCSは非常に精通していないが、上述されたそうで、
国際標準化機構(ISO) 、汎用文字セットを開発しようとしている「(ユニバーサル文字セット、UCSと呼ばれる)、そして最終的にはISO 10646標準を働きました。
そして、UFT-8、UTF-16なども同じことがUCS-2 UCS-4は、ISO 10646の符号化形式のために開発されている
が、UFT-番号は文字の数は、UFT-8は、前記のように、一度読んで表し背後違いは、読み出し回8つの文字、
後者の数はバイトの数がUCS-時間を読み取る表している(1バイト= 8文字)
だから、理解することは簡単です。
UCS-2、UTF-16は、実際には、異なるプレーン以外は同じである(すべてではなく、標準の後)
UCSおよびUTF-32。4、共感
このように繰り返されることはありません
最後に、添付する
UTF-8、UTF-16 UTF-32 UCS-2 UCS-4比較表
https://www.cnblogs.com/malecrab/p/5300503.html:より転載比較表