UCSの列(縦)がUCS-2またはUTF-16のコード。これに上部の +1 から +F までを加えると交点にある文字の文字コードとなる。
たとえば A は 0040+1 で 0040 。 m は 0060+D で 006D である。
これをUCS-2とよぶのもUTF-16とよぶのも厳密には正しくないかもしれないが、一般的にこれをユニコード(Unicode)とよび、"U+" をつけて、U+0041 U+006D などとあらわす。多くは16進数4桁つまり16ビットだが5桁(正確には21ビットで最大値はU+10FFFF)の場合もある。
UTF-16の場合、16ビット以上になる場合は、16ビットの予約域にあるコードを2つ組み合わせて16×2=32ビットであらわすことになっているが、これをサロゲートペア(代用対)という。
漢字の上にマウスを重ねると出てくる表示は Unicode/JIS です。JISの 3- は第1面、4- は第2面を表します。
UCS | UTF-8 | +0 | +1 | +2 | +3 | +4 | +5 | +6 | +7 | +8 | +9 | +A | +B | +C | +D | +E | +F |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0000 | 00 | NUL | SOH | STX | ETX | EOT | ENQ | ACK | BEL | BS | HT | LF | VT | FF | CR | SO | SI |
0010 | 10 | DLE | DC1 | DC2 | DC3 | DC4 | NAK | SYN | ETB | CAN | EM | SUB | ESC | FS | GS | RS | US |
0020 | 20 | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / | |
0030 | 30 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
0040 | 40 | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
0050 | 50 | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ |
0060 | 60 | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
0070 | 70 | p | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ | DEL |
UCS | UTF-8 | +0 | +1 | +2 | +3 | +4 | +5 | +6 | +7 | +8 | +9 | +A | +B | +C | +D | +E | +F |
0080 | C280 | PAD | HOP | BPH | NBH | IND | NEL | SSA | ESA | HTS | HTJ | VTS | PLD | PLU | RI | SS2 | SS3 |
0090 | C290 | DCS | PU1 | PU2 | STS | CCH | MW | SPA | EPA | SOS | SGCI | SCI | CSI | ST | OSC | PM | APC |
00A0 | C2A0 | NBSP | ¡ | ¢ | £ | ¤ | ¥ | ¦ | § | ¨ | © | ª | « | ¬ | SHY | ® | ¯ |
00B0 | C2B0 | ° | ± | ² | ³ | ´ | µ | ¶ | · | ¸ | ¹ | º | » | ¼ | ½ | ¾ | ¿ |
00C0 | C380 | À | Á | Â | Ã | Ä | Å | Æ | Ç | È | É | Ê | Ë | Ì | Í | Î | Ï |
00D0 | C390 | Ð | Ñ | Ò | Ó | Ô | Õ | Ö | × | Ø | Ù | Ú | Û | Ü | Ý | Þ | ß |
00E0 | C3A0 | à | á | â | ã | ä | å | æ | ç | è | é | ê | ë | ì | í | î | ï |
00F0 | C3B0 | ð | ñ | ò | ó | ô | õ | ö | ÷ | ø | ù | ú | û | ü | ý | þ | ÿ |
Unicode(21ビット)を換算して作る可変長の文字コード。8ビットを1バイトとして1~4バイトでUnicode(21ビット)を網羅する。可変長であるから1バイトの部分はUS-ASCIIそのままである。
上の表のUTF-8の列(縦)がUTF-8のコード。これに上部の +1 から +F までを加えると交点にある文字の文字コードとなる。
たとえば A は 40+1 で 40 。 記号 § は C2A0+7 で C2A7 である。
色つきの部分が制御コードである。特に1バイトの部分はUS-ASCIIとおなじである。ただしどのような機能に使うかはシステムにより異なる場合がある。
実際の一覧表では、上記のように NUL などと書き換えず、プログラムで生成したままの状態になっている。プログラムでは文字は数値文字参照(たとえば A は A と書く)で表示しているので制御コードがどのように表示されるかはブラウザとOSのフォントファイルの内容による。
この表でUS-ASCIIに相当する U+0021~U+007E の部分が JIS X 0208 や JIS X 0213 に対応しているのは、適切でないと思うかも知れません。元にした表(http://x0213.org/codetable/jisx0213-2004-std.txt)が JIS X 0213 から対応するUnicodeを調べるもので、3区33点(2341)である全角の「A」が U+0041 つまり半角の「A」に対応していたことによります。
U+FF21に全角の「A」がありますが、これは互換のために用意されたもので、これからは英数字は半角に統一すべきものとされています。JIS X 0213 では JIS X 0201 と併用する時には英数字は JIS X 0201 のものを カタカナは JIS X 0213 のものを使う(半角カナは使わない)と定めています。書き方の揺れで多少違っても同じ字であるとする「包摂」(ほうせつ)という概念があります。たとえばひらがなの「そ」は横棒で書き始める場合と左上から右下への点で書き始める場合ではずいぶんと形が違いますが、これを区別することはまずありません。ましてや、細いか太いかの違いしかない英数字を区別する必然性はないと考えられます。
文字を探す検索で全角の「A」と半角の「A」のどちらを使っているかわからない場合、混用している場合、同一視して探すのはプログラムの手間も検索の時間もかかっていまいます。歴史的な理由があって妥協している部分もありますが、同じ文字に複数の文字コードを割り当てないというのが、UnicodeでもJISでも基本姿勢です。
Basic Multilingual Plane の訳語。Unicode は16ビットで世界じゅうの文字を表現できると考えてスタートした。足りないことがわかって現在では21ビットにしている。8ビットで割れる数でない。U+0000~U+10FFFFである。16ビットの領域であるU+0000~U+FFFFを基本多言語面 (BMP) とよんでいる。ここまでの文字はどのプログラムでも違いがすくなく問題なく扱える。
これをU+0000~U+10FFFFに拡張するまでにいろいろと紆余曲折があり、正しく扱えないOS、独自部分を持つプログラミング言語などがあり、すぐに全部使えるというものではない。