Unicode/文字コード対応表
文字を入力すると、Unicodeコードポイント・UTF-8バイト列・JavaScript/HTML/URL/CSSエスケープの各表現を一覧比較できる無料ツール。すべてブラウザ内で完結する。
代表的な文字のコード対応表
| 文字 | コードポイント | UTF-8 | 備考 |
|---|---|---|---|
| A | U+0041 | 41 | 英大文字(ASCII、1バイト) |
| 0 | U+0030 | 30 | 数字(ASCII、1バイト) |
| ␣ | U+0020 | 20 | 半角スペース(ASCII、1バイト) |
| ! | U+0021 | 21 | 感嘆符(ASCII記号、1バイト) |
| @ | U+0040 | 40 | アットマーク(ASCII記号、1バイト) |
| © | U+00A9 | C2 A9 | 著作権記号(Latin-1補助、2バイト) |
| € | U+20AC | E2 82 AC | ユーロ記号(3バイト) |
| → | U+2192 | E2 86 92 | 右矢印(矢印記号、3バイト) |
| あ | U+3042 | E3 81 82 | ひらがな(3バイト) |
| 漢 | U+6F22 | E6 BC A2 | 漢字(CJK統合漢字、3バイト) |
| 한 | U+D55C | ED 95 9C | ハングル(3バイト) |
| 😀 | U+1F600 | F0 9F 98 80 | 絵文字(基本多言語面外、4バイト、JSではサロゲートペア) |
Unicode文字コード変換とは
このツールは、入力した文字を手がかりに「Unicodeコードポイント」「UTF-8バイト列」「JavaScriptエスケープ」「HTML実体参照(10進数・16進数)」「URLパーセントエンコード」「CSSエスケープ」という7種類のコード表現を同時に一覧表示する無料の文字コード調査ツールです。文字とコードポイントの相互変換、およびコードポイントからバイト列表現への変換を、入力するたびにブラウザ内だけで即座に計算します。
注意点として、絵文字の多くはUnicodeの基本多言語面(BMP、U+0000〜U+FFFF)の外側にあるコードポイントを持ち、JavaScriptの文字列内部では「サロゲートペア」という2つのコードユニットの組み合わせで表現されます。本ツールは`codePointAt`を使ってサロゲートペアを1つの正しいコードポイントとして扱うため、絵文字を入力しても正確な結果が得られます。複数文字を入力した場合は文字ごとに結果ブロックが分かれて表示されます。
Unicode文字コード変換の使い方
- 調べたい文字を入力する 入力欄に文字・記号・絵文字などを入力します。複数文字をまとめて貼り付けることもできます。
- 文字ごとの結果ブロックを確認する 入力した文字数ぶんの結果カードが自動的に並び、それぞれにコードポイントなど7種類の値が表示されます。
- 必要な表現の行を見つける 用途に応じてコードポイント・UTF-8・JavaScriptエスケープなど該当する行を探します。
- コピーボタンで値を取得する 各行のコピーボタンを押すと、その値だけをクリップボードにコピーしてコードへ貼り付けられます。
- 別の文字を試す 入力欄を書き換えるか「クリア」ボタンで空にしてから、次に調べたい文字を入力します。
使いこなすためのヒント
- 入力欄には1文字だけでなく複数文字を入力でき、その場合は文字ごとに結果ブロックが分けて表示されます。
- 絵文字(😀など)はUnicodeの基本多言語面(BMP、U+0000〜U+FFFF)の外側にあるため、JavaScriptの文字列内部では2つのコードユニット(サロゲートペア)で表現されます。「JavaScript エスケープ」の行に2つの`\uXXXX`が並ぶのはこのためです。
- CSSエスケープは`\41`のようにコードポイントの16進数をそのまま書きますが、直後に16進数として解釈されうる文字(0-9・a-f)が続く場合に備え、区切りとして末尾に半角スペースを1つ入れるのが安全です。
- HTML実体参照は10進数(
A)・16進数(A)のどちらの書き方でもブラウザは同じ文字として解釈します。 - コピーボタンで各行の値をクリップボードにコピーできるため、コードやCSSに直接貼り付ける用途で便利です。
こんな場面で使えます
文字化けの原因調査
プログラムやデータベースで想定と異なる文字が表示されたとき、実際のコードポイントとUTF-8バイト列を確認することで、エンコーディングの不一致が原因かどうかを切り分けられます。
絵文字のコードポイント調査
絵文字がサロゲートペアで何コードユニットになるか、UTF-8で何バイトを消費するかを調べたいときに、実際の値を一目で確認できます。
データベースの文字エンコーディング確認
MySQLのutf8mb4対応要否など、特定の文字が何バイトで格納されるかを事前に把握したい場合の検証に使えます。
HTML・CSSへの特殊文字の埋め込み
記号や外国語の文字をHTMLの実体参照やCSSのエスケープとして直接コードに書きたいとき、正しい表記をそのままコピーして使えます。
URLエンコードの検証
日本語や記号を含むクエリパラメータが正しくパーセントエンコードされているかを、実際の変換結果と照らし合わせて確認できます。
用語集
- Unicode
- 世界中のあらゆる文字に単一の番号(コードポイント)を割り当てる国際的な文字コード規格です。異なる言語間の文字化けを防ぐことを目的としています。
- コードポイント
- Unicodeで各文字に割り当てられた番号で、`U+0041`のように`U+`に続けて16進数で表記します。「どの文字か」を一意に示す識別子です。
- UTF-8
- Unicodeのコードポイントをコンピューター上でバイト列として保存・送信するためのエンコーディング方式の1つです。1文字を1〜4バイトの可変長で表現し、ASCII文字と完全互換であるためWebで広く使われています。
- UTF-16
- Unicodeのコードポイントを16ビット単位(コードユニット)で表現するエンコーディング方式です。JavaScriptの文字列は内部的にこの方式を採用しています。
- サロゲートペア
- UTF-16で基本多言語面(BMP)を超えるコードポイントを表現するために使う、2つのコードユニットの組み合わせです。多くの絵文字がこの対象になります。
- BMP(基本多言語面)
- Unicodeのコードポイント空間のうちU+0000〜U+FFFFの範囲を指します。この範囲内の文字はUTF-16で1コードユニットのみで表現できます。
- HTML実体参照
- HTML文書内で特殊文字を安全に記述するための表記で、`A`(10進数)や`A`(16進数)のように書きます。
- パーセントエンコード
- URLに含められない文字をUTF-8バイト列に変換し、各バイトを`%XX`形式で表す方式です。日本語を含むURLなどで使われます。
よくある質問
A(10進数)やA(16進数、`x`接頭辞あり)という書式で、HTML文書内でのみ有効です。一方CSSエスケープは`\41`のように`U+`や`x`を付けず16進数のみを書く書式で、CSSのセレクターやプロパティ値の中で使います。用途に応じて正しい書式を選ぶ必要があります。
余談ですが ― バラバラだった文字コードを統一したUnicode
Unicodeが登場する以前、コンピューターの文字コードは国や言語ごとにバラバラでした。日本語だけでもShift_JIS・EUC-JP・JISコードなど複数の方式が並存し、異なる方式間でテキストをやり取りすると文字化けが頻発していました。1991年に公開されたUnicode 1.0は、世界中のあらゆる文字に単一の番号(コードポイント)を割り当てることで、この混乱を解消することを目指した統一規格でした。
UnicodeとISO/IEC 10646という国際規格は当初別々に策定が進められていましたが、後に協調して同じ文字レパートリーとコードポイント割り当てを共有するようになりました。現在Unicodeは絵文字を含む15万文字以上を収録し、毎年新しいバージョンが公開されて文字が追加され続けています。
UTF-8は1992年にKen ThompsonとRob Pikeによって設計されたエンコーディング方式で、ASCII文字との完全な後方互換性を保ちながら全Unicode文字を表現できる点が画期的でした。この設計が功を奏し、Web上の文書のエンコーディングとして事実上の標準の地位を獲得しています。