文字コード確認(Unicode・UTF-8・Shift_JIS)

文字を貼り付けると、1文字ずつUnicodeのコードポイント、UTF-8・UTF-16・Shift_JISのバイト列を表示します。絵文字の分解、見えない文字や機種依存文字の検出、コードから文字への逆変換もできます。処理はすべてブラウザの中だけで行います。

文字を調べる

例:

上の枠は、見えない文字・空白・改行に印を付けた表示です。

1文字ずつの文字コード

表示:
文字構成コードポイント種類UTF-8UTF-16Shift_JISHTML

エスケープ形式に変換

コードから文字に戻す

このツールでできること

コンピューターの中では、文字はすべて番号(文字コード)で扱われます。このツールは、入力した文字の番号を1文字ずつ表にします。世界共通の番号であるUnicodeのコードポイント(「あ」なら U+3042)と、それを保存・通信するときのバイト列(UTF-8・UTF-16、日本の古い形式のShift_JIS)を並べて見られます。

「見た目は同じなのに検索に引っかからない」「CSVを読み込むと1列目の名前がおかしい」「Macから届いたファイル名の濁点が離れる」「Windowsの古いシステムで文字化けする」といった原因の多くは、目に見えない文字や、見た目が同じ別の文字です。表の「種類」の欄と、上の注意の一覧で、そうした文字を見つけられます。絵文字は、見た目は1文字でも中身が何個の文字でできているかを分解して表示します。

使い方

  1. 「調べたい文字・文章」に、文字を入力するか貼り付けます。入力したそばから結果が変わります。
  2. 上の数字の欄で、見た目の文字数・コードポイント数・UTF-8のバイト数などを確かめます。
  3. 注意の一覧に、見えない文字やShift_JISにない文字が出たら、表の該当する行(「種類」が色付き)を見ます。「注意が必要な文字だけ」に切り替えると、その行だけになります。
  4. 見えない文字を取り除きたいときは「見えない文字を消してコピー」、濁点が離れた文字をまとめたいときは「NFCでコピー」を押します。
  5. プログラムに書く形が欲しいときは「エスケープ形式に変換」で形式を選んでコピーします。逆に「U+3042」や「E3 81 82」から文字を知りたいときは、いちばん下の欄に入れます。

知っておくと便利なこと

「1文字」には3つの数え方がある:👨‍👩‍👧 は見た目は1文字ですが、👨・👩・👧 の3つを「ゼロ幅接合子(ZWJ、U+200D)」2つでつないだ5個のコードポイントでできています。JavaScriptの length はUTF-16の単位で数えるので8、UTF-8では18バイトです。国旗の🇯🇵は「J」「P」に当たる地域指示記号2個、👍🏽は親指の絵文字と肌の色の修飾子の2個です。文字数の上限があるフォームやデータベースでは、どの数え方かで結果が変わります。

UTF-8のバイト数の目安:英数字は1バイト、ラテン文字のアクセント付きやギリシャ文字などは2バイト、ひらがな・カタカナ・ほとんどの漢字は3バイト、絵文字や「𠮷」のような拡張漢字(U+20000以降)は4バイトです。MySQLの古い文字コード utf8(utf8mb3)は3バイトまでしか保存できないので、4バイトの文字を入れると切れたりエラーになったりします。

見えない文字:Webページからコピーした文章には、ゼロ幅スペース(U+200B)やノーブレークスペース(U+00A0)が混ざることがあります。ExcelがUTF-8で保存したCSVの先頭にはBOM(U+FEFF)が付き、プログラムによっては1列目の見出しの一部として読まれます。どれも画面では見えないので、「同じ文字列のはずなのに一致しない」原因になります。

濁点の分離(NFC と NFD):「が」は1文字(U+304C)でも、「か」(U+304B)+結合用の濁点(U+3099)の2文字でも表せます。macOSはファイル名を後者(NFD)で保存することがあり、Windowsに渡すと「か゛」のように離れて見えます。NFCに正規化すると1文字にまとまります。NFKCはさらに、全角英数を半角に、半角カナを全角に、「㈱」を「(株)」にそろえますが、元の文字の区別が消えるので使いどころに注意が必要です。

Shift_JISと機種依存文字:Shift_JISで表せるのは、JIS第1・第2水準の漢字と記号、半角カナなどに限られます。「①」「㈱」などのNEC特殊文字や、「髙」「﨑」などのIBM拡張文字はWindowsでは使えても、ほかの環境では文字化けしやすい「機種依存文字」です。「𠮷」(つちよし)や多くの絵文字はShift_JISにそもそもありません。このツールのShift_JISは、ブラウザが使うWHATWGの対応表(Windowsのcp932とほぼ同じ)で変換しています。

見た目が同じ別の文字:波ダッシュ「〜」(U+301C)と全角チルダ「~」(U+FF5E)、マイナス記号「−」(U+2212)と全角ハイフンマイナス「-」(U+FF0D)、長音「ー」(U+30FC)と罫線「─」(U+2500)などは、フォントによってはほぼ同じに見えます。住所や商品名の検索が合わないときは、コードポイントを比べてみてください。

よくある質問

文字の正式な名前(例:HIRAGANA LETTER A)は表示されますか?
Unicodeの全文字の名前のデータは数MBになるため、このツールでは「ひらがな」「漢字(CJK統合漢字)」「書式文字(見えない)」といった種類と、ゼロ幅スペースや異体字セレクタなど注意が必要な文字の名前だけを表示しています。
入力した文字はどこかに送信されますか?
送信しません。分解・変換はすべてブラウザの中のJavaScriptで行っており、ページを閉じると入力も消えます。
Shift_JISの欄に「変換できません」と出ます。
その文字はShift_JIS(cp932)の対応表にありません。古いシステムに渡すと「?」や「・」に置き換わります。似た文字(「𠮷」なら「吉」)に置き換えるか、UTF-8で扱える仕組みを使ってください。
表に出る文字数に上限はありますか?
表は先頭の500文字(見た目の文字数)までです。上の文字数やバイト数、注意の一覧、エスケープ形式の変換は、入力した文章全体で計算します。
「コードから文字に戻す」の自動判定はどう読みますか?
「U+」「\u」「&#x」などが付いていればコードポイント、「%E3」のような形や2桁ずつ区切った16進数はバイト列として読み、UTF-8で正しく読めなければShift_JISとして読みます。区切りのない4〜6桁の16進数はコードポイントとして扱います。思ったとおりに読めないときは「読み方」を指定してください。