文字コード
文字が UTF-8・UTF-16・Shift_JIS・EUC-JP などでどんなバイト列になるかを、1 文字ずつのビットの割り振りまで見せます。違う文字コードで読んだときの文字化けや、絵文字の「文字数」の数え方、Unicode の正規化も確かめられます。
例
ひらがな・漢字・全角の記号。UTF-8 では 1 文字 3 バイト、Shift_JIS や EUC-JP では 2 バイトです。
読み込んでいます…
使い方
- 例を選ぶか、60 文字までの文字列を入力します。
- コードポイントの並びから文字を押すと、その文字の UTF-8 のビットの割り振りや、UTF-16 のサロゲートペアの計算、各文字コードでのバイト列が出ます。
- 「文字列全体のバイト列」で文字コードを切り替えると、文字ごとのバイト列と合計の大きさを比べられます。表せない文字は赤で示します。
- 「文字化け」では、書いたときと読んだときの文字コードを選んで、どう化けるかを確かめられます。表のマスを押すと、その組み合わせが上に出ます。
- 入力した文字列はブラウザの外に送りません。
文字集合と符号化
コンピューターは文字を数として扱います。どの文字に何番を割り当てるかを決めたものが文字集合(Unicode、JIS X 0208 など)、その番号をどんなバイト列で表すかを決めたものが符号化方式(UTF-8、Shift_JIS など)です。Unicode は世界中の文字に U+0000〜U+10FFFF の番号(コードポイント)を割り当て、それを UTF-8・UTF-16・UTF-32 の 3 つの方式で表します。
日本では、JIS X 0208 の文字集合を符号化する方式として、Shift_JIS(Windows・Mac)、EUC-JP(Unix)、ISO-2022-JP(メール)が使い分けられていました。同じ「あ」でもバイト列が違うため、読み手が文字コードを取り違えると文字化けが起きます。今では Web のほとんどが UTF-8 になり、文字化けはずいぶん減りました。
注意事項
- Shift_JIS・EUC-JP・ISO-2022-JP の対応は、ブラウザが実際に使う WHATWG Encoding Standard に合わせています(Shift_JIS は Windows-31J の拡張文字を含みます)。古いソフトウェアの対応とは一部の記号が違うことがあります。
- EUC-JP の補助漢字(JIS X 0212)は、読むことはできますが書く(符号化する)ことはしません。