ブックタイトルTET5
- ページ
- 100/228
このページは TET5 の電子ブックに掲載されている100ページの概要です。
秒後に電子ブックの対象ページへ移動します。
「ブックを開く」ボタンをクリックすると今すぐブックを開きます。
このページは TET5 の電子ブックに掲載されている100ページの概要です。
秒後に電子ブックの対象ページへ移動します。
「ブックを開く」ボタンをクリックすると今すぐブックを開きます。
TET5
>基本多言語面(BMP)は、Unicode範囲U+0000~U+FFFF内のコード点から成ります。Unicode規格は、さらに多くのコードを追加面群に、すなわち範囲U+10000~U+10FFFF内に含んでいます。>私用領域(PUA)は、私用のために予約されているいくつかの範囲の一つです。Unicode規格はこの範囲内にいかなるキャラクタも指定していませんので、PUAコード点は一般的なやりとりには使えません。基本多言語面はPUAを範囲U+E000~U+F8FF内に含んでいます。第十五面(U+F0000~U+FFFFD)と第十六面(U+100000~U+10FFFD)はまるごと私用のために予約されています。さまざまなUnicode符号化形式(UTF形式)Unicode規格では、各キャラクタに番号(コード点)を割り当てています。これらの番号をコンピュータ処理で利用するためには、これらを何らかの方法で表す必要があります。Unicode規格ではこれを符号化形式と呼びます(以前は変換形式と呼んでいました)。この用語はフォントの符号化方式(エンコーディング)と混同してはいけません。Unicodeでは以下の符号化形式を定義しています:> UTF-8:これは、コード点を1~4バイトで表す可変長形式です。範囲U+0000~U+007F内のASCIIキャラクタは範囲00~7F内のシングルバイトで表されます。範囲U+00A0~U+00FF内のLatin-1キャラクタは2バイトで表され、その第一バイトは必ず0xC2か0xC3(これらの値はLatin-1ではA・Aを表します)になります。> UTF-16:基本多言語面(BMP)内のコード点を16ビット値1個で表します。追加面群内のコード点、すなわち範囲U+10000~U+10FFFF内のものは、16ビット値の対で表します。この対をサロゲートペア(代用対)といいます。サロゲートペア1個は、範囲D800~DBFF内の高位サロゲート値1個と、範囲DC00~DFFF内の低位サロゲート値1個から成ります。高・低サロゲート値はサロゲートペアの一部としてのみ現れることができ、それ以外の場面では現れることができません。> UTF-32:各コード点を32ビット値1個で表します。Unicode符号化スキームとBOM(Byte Order Mark)コンピュータアーキテクチャによってバイトの順序は異なります。すなわち、大きな値(16ビットや32ビット)を構成するバイト群を、最高位バイトを先頭に格納するか(ビッグエンディアン)、それとも最低位バイトを最初に格納するか(リトルエンディアン)という違いがあります。ビッグエンディアンアーキテクチャのよく知られた例はPowerPCであり、一方x86アーキテクチャはリトルエンディアンです。UTF-8とUTF-16はシングルバイトよりも大きな値に基づいていますので、バイト順序を考慮する必要がここで生じてきます。符号化スキーム(上述の符号化形式とは異なることに留意)は、符号化形式に加えてバイト順序を指定します。たとえば、UTF-16BEはビッグエンディアンバイト順序のUTF-16を意味します。バイト順序が事前にわからない場合には、コード点U+FEFFを用いて指定することもできます。これをBOM(Byte Order Mark)といいます。UTF-8ではBOMは必須ではありませんが、存在することもでき、その場合はバイト列をUTF-8として識別するために用いることができます。表7.1に、さまざまな符号化形式におけるBOMの表現を挙げます。表7.1さまざまなUnicode符号化形式におけるBOM符号化形式BOM(16進)1WinAnsiでの視覚表現UTF-8 EF BB BF i≫?UTF-16 big-endianFE FFtyUTF-16 little-endianFF FEytUTF-32 big-endian00 00 FE FF■■tyUTF-32 little-endianFF FE 00 00yt■■100 7章:高度なUnicode処理