必要なツールを、すぐ使えるように

ユニコード変換ツール

「あ」はU+3042(10進数で12354)、AはU+0041、😀はU+1F600です。文字欄に文字を入れるとコードポイントが、コード欄にU+3042・\u3042・あのような表記を入れると文字がすぐに表示されます。下の文字カードでは、Unicode 18.0に基づく文字名・ブロック・追加されたバージョンと9種類の表記を確認し、1つずつコピーできます。

最終更新 2026-10-22計算はブラウザ内だけで処理
例

見た目の文字数
0
コードポイント
0
UTF-16の長さ
0
UTF-8のバイト数
0

コードポイントの帯見た目の1文字を構成するコードポイントを、ひとまとめにしています。押すと下のカードに表示されます。

文字カード

    コード空間マップ面 → 256マス → 隣の文字の順にたどります

    • ハングル
    • ラテン・ギリシャ・キリル
    • 記号・絵文字
    • その他の文字
    • 漢字・かな
    • サロゲート・私用
    隣の文字

    最終更新 2026-10-22入力値は保存しません

    ROBERINの基準必要なツールを、
    すぐ使えるように。
    • ひと目で分かる画面入力と結果の位置をはっきり分けます。
    • 結果が先主要な結果を先に示し、過程は必要なときだけ。
    • 求めない登録や不要な入力なしですぐ使えます。

    コードポイントは、Unicodeが文字ごとに付けた番号です

    Unicodeは世界の文字に番号を1つずつ割り当てた表で、その番号をコードポイントと呼びます。ひらがなの「あ」はU+3042(10進数で12354)、英字の「A」はU+0041(65)、😀はU+1F600(128512)です。U+に続く値は16進数で、4桁に満たないときは前を0で埋めて書きます。番号はU+0000からU+10FFFFまで全部で1,114,112個あり、2026年に公開されたUnicode 18.0では172,808文字が定められています。

    このツールは文字欄とコード欄を並べ、どちらを書き換えても反対側をすぐに書き直します。コードはU+表記のほか、JavaScript・JSONの \u3042、ES2015の \u{3042}、Pythonの \U0001F600、HTMLの あ と あ、CSSの \3042、10進数、0x表記までの9種類で書き出せます。どの表記で書かれた値を貼り付けても、自動で見分けて文字に戻します。下の文字カードでは、選んだ文字の正式名称、ブロック・一般カテゴリ・追加されたバージョンを確認でき、コード空間マップでは、その文字が1,114,112マスのどこにあるかを見られます。

    コードポイントを確認する場面

    ふだんは文字の番号を意識する必要はありません。ですが、文字化けしたとき、コードに文字を直接書けないとき、見た目と実際に保存されている値が違うときには、番号を見ないと原因がつかめません。

    • ログやAPIレスポンスを読む: サーバーのログやJSONのレスポンスに \u3053\u3093\u306B\u3061\u306F のように書かれた文章は、そのままでは読めません。コード欄に貼り付けると「こんにちは」に戻せます。
    • Webページに記号を入れる: キーボードで打ちにくい記号は、HTMLでは →(→)、CSSのcontentでは "\2192" のように番号で書きます。使う場所ごとに文法が違うため、1つの文字を複数の表記に書き換える場面がよくあります。
    • 文字数制限と保存サイズ: 👩‍💻は画面上では1文字ですが、コードポイントは3個、JavaScriptのlengthは5、UTF-8では11バイトです。入力欄の文字数制限やデータベース列のサイズがどの単位で数えるかによって、同じ文章が通ることも切り捨てられることもあります。
    • 濁点が分離する: macOSのHFS Plusは、ファイル名を完全に分解した形で保存します。このため「が」は「か」(U+304B)と結合用濁点(U+3099)の2つで保存され、別の環境に渡すと濁点だけが離れて見えたり、同じ名前で検索できなかったりすることがあります。
    • 全角スペースと全角英数: 全角スペース(U+3000)や全角の英数字(「A」はU+FF21、半角の「A」はU+0041)が混ざると、見た目が似ていても文字列の比較や検索が一致しません。
    • 見えない文字を探す: Webからコピーした番号やURLにゼロ幅スペース(U+200B)が混ざると、見た目は同じでも比較や検索が失敗します。ファイル先頭のBOM(U+FEFF)が原因で、CSVの最初の列名の前に余計な文字が付き、別の名前として読まれることもあります。
    • 豆腐(□)になる文字: 文字が四角(□)や疑問符で表示されるときは、まだ割り当てられていない番号なのか、最近のバージョンで追加されて端末のフォントにまだない文字なのかを切り分ける必要があります。文字カードの名前と「追加されたバージョン」が手がかりになります。

    使い方

    1. 文字欄に文字を入力または貼り付けると、コード欄にコードポイントが表示されます。反対にコード欄に U+3042、\u3042、あ などを入れると、文字欄に文字が表示されます。複数の値はスペースかカンマで区切ります。
    2. 表記ボタンで、U+、10進数、0x、\u、\u{…}、Python、HTML 16進、HTML 10進、CSSのいずれかを選びます。コード欄に別の表記が入っていても、ボタンを押すと選んだ表記で書き直されるため、表記どうしの変換にも使えます。
    3. 「ASCIIはそのまま」をオンにすると、エスケープ表記で英数字と記号をそのまま残し、それ以外の文字だけを番号にします。オフにするとすべての文字を番号で書きます。AB・abボタンは16進数の大文字・小文字を切り替えます。
    4. コードポイントの帯でマスを押すと、文字カードに名前・ブロック・カテゴリ・追加されたバージョンと、10種類の表記が表示されます。行末のコピーボタンは、その表記1つだけをコピーします。
    5. コード空間マップで面の番号やマスを押すか、カードの ‹ › ボタンを押すと、周囲の文字をたどれます。使いたい文字は「文字欄に入れる」で文字欄に追加できます。

    同じ文字を書き表す9種類の表記

    コードポイントは1つでも、書き方の文法は使う場所ごとに違います。下の表は、「あ」(U+3042)と😀(U+1F600)を各表記で書いた値です。U+FFFFを超える😀は、表記によって1かたまりで書かれたり、2つに分かれたりします。

    表記あ😀使う場所
    U+ 表記U+3042U+1F600Unicodeの資料や文字表、解説記事
    10進数12354128512プログラムの数値(JavaScriptのcodePointAt、Pythonのord)
    0x 16進数0x30420x1F600C・Javaなどの数値定数と配列
    \u エスケープ\u3042\uD83D\uDE00JavaScript・JSON・Javaの文字列(UTF-16単位)
    \u{…} エスケープ\u{3042}\u{1F600}ES2015以降のJavaScript、Rust・Swiftの文字列
    Python\u3042\U0001F600Pythonの文字列(\Uは8桁)
    HTML 16進あ😀HTML・XML文書
    HTML 10進あ😀HTML・XML文書
    CSS\3042\1F600CSSのcontent値とセレクタ
    UTF-8バイトE3 81 82F0 9F 98 80ファイルやネットワークでやり取りされる実際のバイト
    UTF-16単位3042D83D DE00JavaScript・Java・Windowsが文字列を保持する単位

    JSONとJavaの \u はちょうど4桁しか受け付けないため、U+FFFFを超える文字は次の節のサロゲートペアで書きます。Pythonは4桁の \u と8桁の \U を使い分け、CSSはバックスラッシュの後に16進数を1〜6桁書き、直後に16進数の数字やスペースが続く場合は、終わりを示すスペースを1つ置きます。HTMLの文字参照は、末尾をセミコロンで閉じます。このツールは貼り付けられた文章を読むときにこれらの規則をすべて認識するので、エスケープと文字参照は1つの文章に混ざっていても構いません。U+・0xの値は空白やカンマで区切った一覧のときだけ読み、エスケープの間に混ざっていれば文字のまま残して知らせます。HTMLの€〜Ÿは、HTML標準に従ってWindows-1252の表の文字(– → –)として読みます。

    😀が \uD83D\uDE00 の2つで書かれる理由

    UTF-16は文字列を16ビットの単位で保存します。16ビットで書けるのはU+FFFFまでなので、それより大きいコードポイントは、サロゲートという専用領域(U+D800〜U+DFFF)の値を2つ並べて書きます。😀(U+1F600)を例にすると、計算は次のとおりです。

    1. コードポイントから0x10000を引きます。0x1F600 − 0x10000 = 0xF600です。
    2. 残った20ビットを、上位10ビットと下位10ビットに分けます。0xF600の上位10ビットは0x3D、下位10ビットは0x200です。
    3. 上位の値に0xD800を、下位の値に0xDC00を足します。0xD800 + 0x3D = 0xD83D、0xDC00 + 0x200 = 0xDE00になります。
    文字コードポイントUTF-16(サロゲートペア)UTF-8バイト
    😀U+1F600D83D DE00F0 9F 98 80
    👍U+1F44DD83D DC4DF0 9F 91 8D
    𝄞U+1D11ED834 DD1EF0 9D 84 9E
    𠀀U+20000D840 DC00F0 A0 80 80

    このためJavaScriptでは '😀'.length が2になり、JSONでは \uD83D\uDE00 と書かれます。上位サロゲート(D800〜DBFF)の直後には必ず下位サロゲート(DC00〜DFFF)が必要で、片方だけが単独で現れた場合は文字になりません。このツールは、U+D800のようなサロゲートの値や、対のない \uD83D をエラーとして知らせます。

    文字数の4つの数え方

    「文字数」は、何を数えるかで変わります。画面で1文字に見える単位はUAX #29が定める書記素クラスター(grapheme cluster)、コードポイント数はUnicode番号の個数、UTF-16の長さはJavaScriptのlengthの値、UTF-8バイトはファイルに保存したときのサイズです。文字欄の上の4つの欄が、これらの値です。

    文字見た目の文字数コードポイントUTF-16UTF-8バイト違いの理由
    A1111ASCIIでは4つの値がすべて同じです
    あ1113ひらがなはUTF-8で3バイトです
    が(分解形)1226濁点が分かれた形では、結合用濁点も1コードポイントになります
    😀1124U+FFFFを超えるので、UTF-16では2単位です
    👍🏽1248肌の色を表す修飾文字(U+1F3FD)が付きます
    🇯🇵1248国旗は地域表示記号のJ・Pの2つです
    👩‍💻13511ZWJ(U+200D)が2つの絵文字をつなぎます
    é(e + U+0301)1223結合アクセントが前の文字に付きます

    そのため、「何文字まで」という制限を設けるときは、まず何で数えるかを決める必要があります。人が感じる文字数は見た目の文字数、保存容量はUTF-8のバイト数、JavaScriptコードのsliceやsubstringの位置はUTF-16単位が基準です。絵文字の途中をUTF-16単位で切ると、対のないサロゲートが残り、文字化け(�)が生じます。

    ハングル音節のコードポイント計算

    このツールにハングルの音節を入れると、文字カードに初声・中声・終声の番号が表示されます。完成形のハングル11,172字(U+AC00〜U+D7A3)は、初声19個 × 中声21個 × 終声28個(パッチムなしを含む)を順に並べたものなので、番号を計算で求められます。Unicode仕様3.12節の式は次のとおりです。番号は0から数え、逆にコードポイントから0xAC00を引いた値を588(21 × 28)で割った商が初声、余りを28で割った商が中声、その余りが終声の番号です。

    コードポイント = 0xAC00 + (初声の番号 × 21 + 中声の番号) × 28 + 終声の番号

    文字初声中声終声計算コードポイント
    가ㄱ 0ㅏ 0なし 0AC00 + (0 × 21 + 0) × 28 + 0U+AC00
    한ㅎ 18ㅏ 0ㄴ 4AC00 + (18 × 21 + 0) × 28 + 4 = AC00 + 10,588U+D55C
    힣ㅎ 18ㅣ 20ㅎ 27AC00 + (18 × 21 + 20) × 28 + 27 = AC00 + 11,171U+D7A3

    コード空間マップ: 17の面

    1,114,112個のコードポイントは、65,536個(0x10000)ずつ17の面に分かれています。U+1F600の先頭の1のように、4桁を超える上位の桁が面の番号です。ツールのマップで大きな板は面1つを256マスに分けたもので、1マスにコードポイント256個が入っています。マスの色は、そのマスを最も多く占めるブロックのグループです。

    面範囲名前入っているもの
    0U+0000〜U+FFFF基本多言語面(BMP)ラテン文字・ハングル・基本的な漢字・かななど、現在使われる文字の大半、サロゲート(D800〜DFFF)、私用領域(E000〜F8FF)
    1U+10000〜U+1FFFF追加多言語面(SMP)絵文字の大部分、古代文字、数学用英数字記号、楽譜記号
    2U+20000〜U+2FFFF追加漢字面(SIP)CJK統合漢字拡張B〜F・I、CJK互換漢字補助
    3U+30000〜U+3FFFF第3漢字面(TIP)CJK統合漢字拡張G・H・J、小篆(Seal、Unicode 18.0)
    4〜13U+40000〜U+DFFFF割り当てなしまだ文字が割り当てられていません
    14U+E0000〜U+EFFFF追加特殊用途面(SSP)タグ文字、異体字セレクタ補助
    15〜16U+F0000〜U+10FFFF追加私用面A・B組織やフォントがそれぞれ独自に決めて使う領域

    面0で最も広い2つのかたまりは、CJK統合漢字(U+4E00〜U+9FFF、20,992コードポイント)とハングル音節(U+AC00〜U+D7A3、11,172字)です。その直後のU+D800〜U+DFFFはサロゲート専用で文字がなく、U+E000〜U+F8FFは私用領域で、名前を付けずに空けてある領域です。面1〜16は、すべてUTF-16ではサロゲートペアで書かれます。

    目に見えない文字

    スペースのように見える文字や、まったく見えない文字にもコードポイントがあります。コードポイントの帯と文字カードは、こうした文字を点線の枠に入った名札で表示するので、貼り付けた文章に何が隠れているかがすぐに分かります。

    名札コードポイント正式名称よく現れる場所
    NBSPU+00A0NO-BREAK SPACE(改行しないスペース)Webの  、ワープロで入る改行されないスペース
    ZWSPU+200BZERO WIDTH SPACE(幅のないスペース)Webからコピーした文章、改行位置を示す箇所
    ZWJU+200DZERO WIDTH JOINER(幅のない結合子)👩‍💻のように、2つの絵文字を1つにつなぐ箇所
    VS16U+FE0FVARIATION SELECTOR-16(異体字セレクタ16)❤️のように、文字をカラー絵文字の形で表示させるとき
    BOMU+FEFFZERO WIDTH NO-BREAK SPACE(バイト順マーク)一部のエディタが保存したファイルの先頭
    IDSPU+3000IDEOGRAPHIC SPACE(全角スペース)日本語・中国語の文書、全角入力状態でのスペース
    HFU+3164HANGUL FILLER(ハングル・フィラー)空白に見えるため、ニックネームなどに使われることもある文字
    SHYU+00ADSOFT HYPHEN(ソフトハイフン)行末で単語が分割されるときだけ見えるハイフン

    改行も文字です。Windowsのメモ帳は行末をCR(U+000D)とLF(U+000A)の2文字で、macOSとLinuxはLF1文字で書くことが多くあります。ただしブラウザの入力欄は、貼り付けたCR LFをLF1つに変換するため、ファイルの行末をそのまま確認するには、UTF-8 16進数変換ツールのようにバイトを見るツールが必要です。

    正規化: NFCとNFD

    Unicodeには、同じ文字を2通りに書き表せる場合があります。たとえば「が」は、1つのコードポイント(U+304C)でも、「か」(U+304B)と結合用濁点(U+3099)の2つでも書け、画面では同じに見えます。Unicodeもこの2つを同じ文字とみなします(正準等価)。合成した形にそろえる方式がNFC、分解した形にそろえる方式がNFDです(UAX #15)。

    文字NFC(合成形)NFD(分解形)
    がU+304CU+304B U+3099
    パU+30D1U+30CF U+309A
    éU+00E9U+0065 U+0301
    ÅU+00C5U+0041 U+030A

    文字列の比較・検索・ファイル名は、正規化の形が違うと別の値として扱われることが多くあります。文字欄に分解された文字が混ざっていると、このツールが知らせ、「NFCにまとめる」「NFDに分解」ボタンでまとめて変換できます。半角と全角、①と1のように、形の違う文字を同じ文字にそろえる互換正規化(NFKC・NFKD)は、このツールでは行いません。

    間違えやすい点

    • U+の後ろの値を10進数で書く: U+3042の3042は16進数です。10進数の12354をU+12354と書くと、面1のまったく別の番号になります。このツールは、接頭辞のない数を16進数として読み、数字だけの場合は10進数として読み直すボタンを表示します。
    • サロゲートの値をコードポイントとして書き写す: \uD83D\uDE00 をU+D83D U+DE00と書き写すと、文字になりません。コードポイントはU+1F600の1つです。
    • \uの後ろの桁数: JavaScript・JSONの \u はちょうど4桁、Pythonの \U はちょうど8桁です。\u1F600 は、U+1F60(ὠ)の後ろに数字の0が付いた文字列として読まれます。
    • CSSエスケープの後ろの数字: CSSでは "\30421" がU+30421として読まれます。「あ」の後ろに1を書くには、"\3042 1" のようにスペース1つでエスケープの終わりを示します。
    • HTML参照のセミコロンを省く: &#12354 のようにセミコロンを省くと、後ろに続く文字によって読み方が変わったり、エラーとして処理されたりします。あ のように閉じて書くのが安全です。
    • 長音記号と漢数字の「一」の取り違え: カタカナの長音記号「ー」(U+30FC)と漢数字の「一」(U+4E00)は、形が似ていても別の文字です。ファイル名や検索語に混ざると一致しないので、コードポイントで確認します。
    • 見た目だけで同じ文字と判断する: ラテン文字のA(U+0041)、ギリシャ文字のΑ(U+0391)、キリル文字のА(U+0410)は、形が同じでも別の文字です。URLやIDに混ざると検索やログインが失敗するので、コードポイントで確認します。

    制限事項

    • 文字名・ブロック・一般カテゴリ・追加されたバージョンは、Unicode 18.0のデータに基づきます。字形はお使いの端末のフォントが描くため、データにある文字でも四角で表示されることがあります。
    • 見た目の文字数は、ブラウザの書記素クラスターの規則(Intl.Segmenter)で数えます。ブラウザが対応するUnicodeのバージョンによって、最新の絵文字の組み合わせは数え方が変わることがあります。
    • Pythonの \N{名前} 表記と8進数のエスケープは読み取りません。\x はバイトではなくコードポイント(U+0000〜U+00FF)として読むので、UTF-8のバイトを文字に戻すときはUTF-8 16進数変換ツールを使います。
    • CSSは \0 とサロゲート、U+10FFFFを超える値をU+FFFDに置き換えて読みますが、このツールはサロゲートと範囲を超える値をエラーとして知らせます。
    • 互換正規化(NFKC・NFKD)、大文字・小文字の変換、文字名による検索は行いません。
    • 文字欄は200,000文字まで変換し、コードポイントの帯は先頭の400個まで描画します。
    • 変換はこのブラウザの中だけで行います。文字名のデータファイルを一度取得するだけで、入力した文字やコードをサーバーに送ることはありません。

    基準: U+表記と面・サロゲート・ハングル音節の規則はUnicode 18.0コア仕様、文字名・ブロック・追加されたバージョンはUnicode 18.0文字データベース(UCD)、エスケープの文法はECMAScript・Python・HTML・CSSの仕様とRFC 8259を、2026年10月22日に確認しました。表の値は、このツールの変換コアで再計算して照合しています。

    出典

    よくある質問

    ひらがなの「あ」のUnicodeは何ですか?

    「あ」のコードポイントはU+3042で、10進数では12354です。JavaScript・JSONでは\u3042、HTMLではあまたはあと書き、UTF-8で保存するとE3 81 82の3バイトになります。

    U+3042のようなコードを文字に変換するには?

    コード欄にU+3042を入れると、文字欄に「あ」が表示されます。\u3042、あ、あ、0x3042のように別の表記で書かれた値も、そのまま貼り付ければ表記を見分けて文字に戻します。複数の値はスペースかカンマで区切ります。

    😀はなぜ\uD83D\uDE00のように2つで表示されるのですか?

    😀のコードポイントはU+1F600の1つです。JavaScript・JSON・Javaの\uはUTF-16単位の4桁しか受け付けないため、U+FFFFを超える文字はサロゲートペア\uD83D\uDE00に分けて書きます。\u{1F600}やPythonの\U0001F600は1つで書けます。

    絵文字1つの長さが2や5になるのはなぜですか?

    JavaScriptのlengthはUTF-16単位の数を数えます。😀はコードポイント1個でもUTF-16では2単位で、👩‍💻はU+1F469・U+200D・U+1F4BBの3コードポイントなので5単位です。このツールは、見た目の文字数・コードポイント・UTF-16の長さ・UTF-8のバイト数をまとめて表示します。

    同じに見える「が」なのに、コードポイントの数が違うのはなぜですか?

    合成形(NFC)の「が」はU+304Cの1つですが、分解形(NFD)は「か」(U+304B)と結合用濁点(U+3099)の2つです。画面では同じに見えても、比較や検索では別の文字列として扱われることがあるため、「NFCにまとめる」ボタンでそろえられます。

    目に見えない文字はどうやって探しますか?

    文字欄に貼り付けると、コードポイントの帯にゼロ幅スペース(ZWSP、U+200B)、BOM(U+FEFF)、改行しないスペース(NBSP、U+00A0)などが点線の枠の名札で表示されます。コピーした番号やURLの動作がおかしいときに、原因を探す手がかりになります。

    Unicodeのコードポイントはいくつありますか?

    U+0000からU+10FFFFまで1,114,112個あり、65,536個ずつ17の面に分かれています。Unicode 18.0では172,808文字が定められていて、U+D800〜U+DFFFのサロゲート領域は文字として使われません。

    入力した文字はサーバーに送信されますか?

    いいえ。変換はこのブラウザの中だけで行います。文字名を表示するためにUnicode 18.0のデータファイルを一度取得しますが、入力した文字やコードをサーバーに送ったり保存したりすることはありません。