いUTF-8UTF-16、UTF-32異なる文字の数です。
-
02-07-2019 - |
質問
大丈夫です。このように見える典型的な "なぜそうまたは www.unicode.org は、一見の価値ありですか?" 質問ですが、その素朴な疑問の答えはまだeludesいを確認しています。
っていう、これら三つのエンコードシステムズ-サポートのすべてのUnicode文字かを確認する必要はありしている請求項にプレゼンテーションです。
ボーナスの質問:これらのエンコーディングが異なり、文字数も拡張できる時間はどのくらいですか。
解決
いえ、単なる別のエンコーディング方法。彼らはすべてエンコード支援、同じ文字です。
UTF-8の利用でもどこでもらバイト文字によってどの文字だけのエンコーディングです。文字のASCII範囲だけを取り上位バイトが非常に珍しい文字を取ります。
UTF-32が使用バイト文字の如何にかかわらず文字のことですので、まずよUTF-8エンコードと同じ文字列になります。いずみさの、いままでの数の変化を計測することにより、文字数にUTF-32文字列のみの計数バイトまでとなります。
UTF-16バほとんどのcharactes、バイトは珍しいです。
http://en.wikipedia.org/wiki/Comparison_of_Unicode_encodings
他のヒント
がないUnicodeの文字を格納する一つのエンコードがないます。この有効なUnicode文字に制限されているか保存できUTF-16(最小容量はエンコーディング).つまり、UTF-8UTF-32 え きを表すのに使用されるより広範囲の文字によUTF-16で な.こんにちは。
UTF-8
UTF-8では、この可変長のコードです。一部の文字を必要と1バイトを必要とするな2、3と4.バイトの文字列で記述につとして継続的なストリームのバイトです。
一部のUTF-8文字できる4バイト長で、UTF-8 できないエンコード2^32文字まで.なのでもあります。私の理由を説明する。
ソフトウェアのみの読み取りUTF-8ストリームだけが配列のバイトなどでしっか否かを決定するには、次の4バイト数が4バイト文字、または2バイト文字は、1バイト文字(またはその他の組み合わせ)?基本的にはこの決定が1バイト配列のない有効な文字を、2バイト配列のない有効な文字です。これらの無効な列が表示されないことも一部を形成し、 長 シーケンスです。
いの中で、ひと味違った例では難しいことだと思い:そうすること。多くのプログラミング言語と決定した \
文字の文字列のソースコードな翻訳を任意の有効な文字の文字列の"作成"です。がりのソースとして注目されるの配列、 \n
または \xFF
.ご注意 \x
は無効2-文字配列をコードするヌクレオチド \xF
無効な3文字の配列が、 \xFF
が有効で4文字のシーケンスです。
基本的には、トレードオフの関係に多くの文字を短縮文字です。したい場合は2^32文字、またそれが平均して4バイトの長さです。したい場合はすべての文字2バイト以下になることができない以上2^16文字です。UTF-8を合理的に妥協:すべての ASCII 文字(ASCII0-127)は1バイトの表明では、サマーフェスティバルの互換性が、多くの文字を許可する。
のようなもの可変長符号化の種類のエスケープシーケンスは、上記のUTF-8である 瞬間コード.このデコーダで読み込みバイトをバイトでの最後のバイトの文字で何文字(いではないかと な 首が長いのです。
たとえば、文字の'A'は表現のバイト65ありません/しつつ、バイト文字が最初のバイトは65.その他のデコーダがないかどうかを知ることができ文字のほか、'A'の後に、地下鉄からも近くて便利。
がUTF-8では、この制限もあります。することで、エンコードの短縮文字が表示されない どこでも 内のエンコーディングの長い文字です。例えば、バイトを4バイト文字を使用でき65.
以来、UTF-8 128異なる1バイト文字(半角の値は0-127)、2、3、4バイト文字にする必要のみによって構成されるバイトの範囲128-256.ことになる大きます。しかし、できるバイト指向の文字列の関数を作っています。例えば、Cの strstr()
機能を常時動作する場合、その入力が有効でUTF-8の文字列です。
UTF-16
UTF-16でも可変長コード文字を消費は2または4バイトです。2バイト値の範囲0xD800-0xDFFF権法の構築に4バイト文字、すべての4バイト文字はバイトの範囲0xD800-0xDBFF次いで2バイトの範囲0xDC00-0xDFFF.このため、Unicodeのない任意の範囲の文字U+D800-U+DFFF.
UTF-32
UTF-32は固定長のコードは、各キャラクターが4バイトの長さです。ながらこのエンコーディングの2^32異なる文字は、値0から0x10FFFFのについては、このスキームです。
能力の比較:
- UTF-8: 2,097,152(実際に2,166,912がデザインの詳細の地図と同じもの)
- UTF-16: 1,112,064
- UTF-32: 4,294,967,296ものに限定されず1,114,112)
最も制限されるUTF-16!の形式でUnicodeの定義のUnicode文字にできる符号化することがUTF-16(の範囲U+0000-U+10FFFFを除いたU+D800U+DFFF).UTF-8UTF-32支援すべてのこれらの文字です。
UTF-8のシステムではないの"を人為的に制限"を4バイトです。で拡張できる8バイトを侵害することなくいかに制限し概要前のことの利回りの容量を2^42.元のUTF-8の仕様がことを許される6バイトにおける容量は2^31日です。が RFC3629 限定で4バイトからはどのくらいが必要なすべてのUTF-16ます。
ありその他(主として歴史)Unicodeエンコーディング方式のうち、特にUCS-2(み可能なエンコーディングのU+0000-U+FFFF).
UTF-8UTF-16、UTF-32のすべての支援のunicodeコードポイント。キャラクターが配置されていないに支えられていることがない。
としてのボーナス"という問題あなたはこれらのエンコーディングでは異なり、文字数も拡張できる時間はどのくらいですか。" あります。はUTF-8UTF-16エンコードされてい限界の合計数コードポイントで支援以下に2^32.しかし、Unicodeコンソーシアムでは追加しないコードポイントをUTF-32表すことができなUTF-8またはUTF-16です。違反することにな精神をエンコーディング標準で保証ができない、一対一のマッピングがUTF-32UTF-8またはUTF-16).
私個人として必ず確認してください ジョエルの投稿 約unicodeエンコーディングおよび文字セットが不明確となる。
すべてUTF-8/16/32エンコーディングできるすべてのUnicode文字です。見 Wikipediaの比較Unicodeエンコーディング.
このIBM第 エンコードおXML文書をUTF-8 でも、ことを示していれば、選択肢と良い選べるUTF-8です。主にその理由はの広いツールをサポート、UTF-8で 通常 通システムを認知していないunicodeで扱います。
からの どのスペックと言う の IBM第:
双方は、W3CのIETFて 最近になり念 選択UTF-8、、 時だけます。は、W3Cの文字 モデルWorld Wide Web1.0:基礎盟国が独自の 文字エンコーディングが必要なの 文字エンコーディングが必要UTF-8, UTF-16またはUTF-32.US-ASCIIが 上方互換性をUTF-8( US-ASCII文字列はUTF-8 文字列は、[RFC3629])は、UTF-8 このため適切な場合に互換性 とUS-ASCIIが望まれる。" に 実践との互換性US-ASCII の有用性につながっていまし 必要です。W3Cに賢明について "などなど Apiでは、UTF-16またはUTF-32場合 適しています。その他の理由で 選択されま 効率の内部処理 相互接続性を プロセス"
としての発言をUTF-8UTF-16、UTF-32ですべてのエンコードのすべてのUnicodeコードポイント。しかし、UCS-2(感とUCS-16)変異体ではな, このときなどWindows XP/Vista.
見 Wikipedia ます。
編集: 私は間違いWindows NTの支援UCS-2.しかし、多くのWindowsアプリケーションとコミュニケーションをたコードポイントとしてUCS-2、見つける可能性があるバグ修正見 他のWikipedia記事.(感謝JasonTrue)