エンコード

Unicode エンコード・デコード

テキストを Unicode エスケープに変換し、エスケープを読みやすい文字に戻せます。DevKitLab は各文字をコードポイント単位で JavaScript の \u エスケープ、U+ コードポイント、HTML 実体参照、旧式のパーセントエスケープとして書き出し、どのコードがどの文字に対応するかを 1 文字ずつ並べて確認できます。デコードは形式を問わず、\u と U+ と HTML 実体参照が混在していても一度に復元し、サロゲートペアや追加面の絵文字も正しく扱います。すべてブラウザー内で処理するため、ソース片や個人的なメモがページの外に出ることはありません。

  • 双方向に変換し、デコード時は複数のエスケープ形式が混在しても一度に復元します
  • 同じ入力から JavaScript の \u、U+ コードポイント、HTML 実体参照、旧式の %u を出力します
  • 追加面の文字や絵文字を UTF-16 サロゲートペアを含めて正しく扱います
  • 1 文字ずつの対応表で、各文字とそのエスケープを並べて示します
  • 非 ASCII だけをエスケープすることも、すべての文字をエスケープすることもできます
  • すべてブラウザー内で動作するため、貼り付けた内容はアップロードされません
工具/Unicode エンコード・デコード
0 文字
変換結果がここに表示されます
自動判定
変換コマンド

概要

テキストを Unicode エスケープとして読みたいとき、あるいはエスケープ列をそれが表す文字に戻したいときのための変換ツールです。文字とコードポイントの対応をどの段階でも見える状態に保ち、インストールは不要で、貼り付けた内容をサーバーに送ることもありません。

  1. 01

    1 つの画面でエンコードとデコード

    プレーンテキストを Unicode エスケープにエンコードし、エスケープを文字へデコードする操作を同じ場所で行え、別途の変換ステップはありません。方向を選べば、結果と 1 文字ずつの対応表、デコードした列の件数が入力に合わせて更新されます。

  2. 02

    5 つのエスケープ形式

    各文字を JavaScript の \u エスケープ、U+ コードポイント、HTML の 16 進・10 進実体参照、旧式の %u エスケープとして書き出せます。出力は JavaScript、TypeScript、JSON、HTML マークアップ、仕様書、不具合報告へ整形し直さずに貼り付けられます。

  3. 03

    サロゲートペアを正しく処理

    JavaScript とパーセントのエスケープは UTF-16 コードユニット単位で動くため、絵文字のような追加面の文字も正しい上位・下位サロゲートペアになり、デコード時には壊れた半分が 2 つではなく 1 文字に戻ります。

  4. 04

    双方向の 1 文字ずつ対応表

    エンコード時は各文字とそのエスケープを、デコード時は各エスケープとそれが生んだ文字を並べて示し、サロゲートペアは 1 項目にまとめます。混在した文字列が意図どおり解釈されたかを確認できます。

  5. 05

    形式を問わないデコード

    \u、\u{…}、U+、%u、HTML 実体参照が混在した文字列を貼り付けても、一度にすべて復元し、サロゲートペアを再結合し、その間にある通常のテキストはそのまま残します。

  6. 06

    エスケープ範囲を選択

    非 ASCII の文字だけをエスケープしてコードを読みやすく保てるほか、フィールドやプロトコル、古いツールが厳密な ASCII 安全文字列を求める場合はすべての文字をエスケープできます。U+ 形式はその表記の読み方どおり、すべてのコードポイントを列挙します。

  7. 07

    ワンクリックで入れ替え・再利用

    現在の結果を入力に戻して方向を反転できるため、エンコードしてからデコードする往復確認がワンクリックで済みます。

  8. 08

    ローカルのみで処理

    エンコード、デコード、対応表はすべてブラウザー内で動作します。ソース片、ログ行、個人的なテキストは端末に留まり、アップロードされません。

使い方

テキストを貼り付け、どう書き出すかを選び、結果をコピーするだけ。すべて入力に合わせて再計算されるので、押すべき変換ボタンはありません。

  1. 01

    入力欄にテキストを入力または貼り付けてエンコードするか、デコードしたい Unicode エスケープの文字列を貼り付けます。

  2. 02

    方向を「エンコード」にしてテキストをエスケープに、または「デコード」にしてエスケープを文字に戻します。

  3. 03

    エンコード時は出力形式を JavaScript の \u、U+ コードポイント、HTML の 16 進・10 進実体参照、旧式の %u から選びます。

  4. 04

    非 ASCII の文字だけをエスケープするか全文字をエスケープするかを決めます。デコード時はすべての形式が自動で判定されます。

  5. 05

    対応表ビューに切り替えて 1 文字ずつの対応を確認し、出力をコピーするか結果を入力に入れ替えます。

詳細

適した設定は結果の送り先と、何を読んでいるかによって変わります。各形式とオプションが活きる場面をいくつか挙げます。

  • JavaScript の \u エスケープは JS、TypeScript、JSON の文字列リテラルにそのまま貼り付けられ、ソースファイルを ASCII のまま保ちます。
  • \u{…} のコードポイントエスケープと U+ 表記はどちらも単一のコードポイントを示し、Unicode の一覧表や仕様書での文字の書き方と同じです。
  • HTML の 16 進・10 進実体参照(数値文字参照)は、非 ASCII ファイルを保存せずに記号や絵文字をマークアップ上で表示します。
  • 旧式の %u エスケープは、いまも読んだり再現したりする必要がある古い escape・unescape 処理の出力に合います。
  • 「非 ASCII のみ」の範囲は通常の文字を読みやすく保ち、アクセント付き・CJK・記号だけをエスケープします。「全文字」は完全に ASCII 安全な文字列を作ります。
  • デコードはあえて寛容に作ってあるため、複数のエスケープ書式が混じった値でも元のテキストに戻ります。
  • 対応表は、Unicode を学ぶ人にコードポイント、サロゲートペア、マルチバイト文字を説明する最も速い手段です。
  • 入れ替えで往復確認が簡単です。エンコードして入れ替え、元のテキストがそのまま戻るかを確認できます。

活用シーン

Unicode エスケープの作業はコーディング、デバッグ、内容の整理でよく登場します。いずれも、文字列に何が入っているかを当て推量するより、文字とコードポイントの対応を見えるようにするほうが確実な場面です。

  1. ソースコードへの埋め込み

    アクセント付き・CJK・絵文字の文字列を \u エスケープにして、ソースファイルを ASCII のまま保ち、生の Unicode を壊しかねないエディター・端末・ビルドパイプラインでも崩れないようにします。

  2. 文字化けやエンコードの不具合調査

    文字列の背後にある正確なコードポイントを表示し、文字化け、紛らわしい類似文字、比較を静かに壊す見えない制御文字を突き止めます。

  3. 仕様書のコードポイントを読む

    Unicode の一覧表や仕様書の U+ 値を実際の文字に変換し、逆方向にエンコードして正しいものか確認します。

  4. HTML 実体参照を書く

    記号、通貨記号、絵文字の数値 HTML 実体参照を生成し、ファイルの文字コードに左右されずマークアップを正しく表示します。

  5. ログ・JSON・設定のデコード

    ログ行や JSON レスポンス、設定ファイルからコピーしたエスケープ文字列を貼り付け、実際に表す文字に戻して読みます。

  6. 文字エンコードの指導

    文字からコードポイントとエスケープへの対応をその場で示し、サロゲートペアや絵文字の例もすぐ使えるよう用意します。

  7. コピーしたテキストの整理

    コードポイントを 1 つずつ確認し、コピー&ペーストで文字列に紛れ込んだゼロ幅スペース、スマートクォート、類似文字を見つけて置き換えます。

  8. 他システム向けのデータ準備

    生の Unicode をうまく扱えないフィールド、URL、プロトコルへ渡す前に、ASCII 安全なエスケープを生成します。

関連情報

このツールはコードポイント単位で動きます。エスケープではなく基になる UTF-8 バイトが必要なときは、 テキストを2進数に変換 が各文字をバイナリや 16 進のバイトとして表示します。名前付き・数値の HTML 実体参照を専門に扱うなら、 HTML エンコーダー・デコーダー がマークアップ側を担い、アドレス向けのパーセントエンコードには、 URL エンコーダー・デコーダー が URL やクエリ値を扱います。エンコード前にまず入力を測りたいときは、 テキストカウンター が文字数、語数、コードポイント数を集計します。

使い方のヒント

形式が送り先とデータに合っていれば、変換は正確です。エンコードとデコードを完全に可逆に保つ習慣をいくつか挙げます。

  • 送り先に合わせて形式を選びます。ソースコードには \u、マークアップには数値実体参照、ドキュメントやメモには U+ です。
  • コードでは「非 ASCII のみ」の範囲を使い、通常の文字はそのままに、本当にエスケープが必要な文字だけを変えます。
  • 対象が厳密な ASCII 安全文字列を本当に求める場合に限り「全文字」に切り替えます。出力がかなり長くなるためです。
  • \u と %u は UTF-16 コードユニットを数えるため、1 つの絵文字は 1 つではなく 2 つのエスケープになる点に注意します。
  • コピーする前に対応表でサロゲートペアやマルチバイト文字が想定どおりエンコードされたか確認します。
  • 入れ替えで往復を確認します。エンコードして入れ替え、元のテキストが変わらず戻るかを見ます。
  • 機微なテキストは作業後に画面をクリアします。ローカル処理でアップロードはされませんが、入力は消すまで残ります。

制限事項

Unicode エスケープは文字を書き表す方法であって、隠したり保護したりする手段ではありません。いくつかの限界を覚えておく価値があります。

  • テキストをエスケープにするのはエンコードであって暗号化ではありません。誰でも元に戻せるため、何も保護しません。
  • JavaScript とパーセントのエスケープは UTF-16 なので、U+FFFF を超える文字はすべて 2 ユニットのサロゲートペアとして書かれます。
  • デコードは U+10FFFF までのコードポイントを受け付け、有効範囲外のトークンは推測せずそのまま残します。
  • このツールが扱うのはコードポイントとエスケープであり、UTF-8 のバイト列ではありません。生のバイトにはテキストをバイナリに変換するツールを使ってください。
  • デコードは形式を問わないため、たまたまエスケープに見える通常の文字列も一緒に変換されます。
  • 対応表は入力が非常に長い場合、ページの応答性を保つために上限で打ち切られますが、まとめて表示する出力は完全なまま生成されます。

よくある質問

エスケープ形式、サロゲートペア、形式を問わないデコード、エスケープ範囲、そして Unicode エスケープと UTF-8 の違いについてのよくある質問です。

テキストを Unicode エスケープに変換するには?

入力欄にテキストを入力または貼り付け、方向を「エンコード」にして JavaScript の \u や U+ コードポイントなどの形式を選ぶと、ツールが入力に合わせて 1 文字ずつエスケープします。既定では非 ASCII の文字だけが対象で、範囲を切り替えればすべての文字をエスケープできます。

Unicode エスケープをテキストに戻すには?

方向を「デコード」にしてエスケープ文字列を貼り付けます。デコードは同じ入力内の \u、\u{…}、U+、%u、HTML 実体参照を認識してサロゲートペアを再結合するので、複数の形式を混在させても元の文字が得られます。

\uXXXX と U+XXXX の違いは?

どちらもコードポイントを示します。\uXXXX は UTF-16 コードユニットを使う JavaScript のエスケープで、追加面の文字はサロゲートペアになります。U+XXXX は Unicode の一覧表・仕様書・ドキュメントで単一のコードポイントを示す標準表記です。

絵文字や追加面の文字はどう扱われますか?

\u と %u はコードユニット単位で扱うため絵文字は UTF-16 サロゲートペアとして書かれ、\u{…}・U+・HTML 実体参照では単一のコードポイントとして表示されます。いずれも元の文字に往復し、デコードの対応表ではそのペアを 1 項目にまとめます。

複数の形式が混じった文字列もデコードできますか?

はい。デコードは形式を問わず、\u、\u{…}、U+、%u、数値 HTML 実体参照を同じ入力内でまとめて読み取り、その間の通常テキストはそのまま残し、変換したエスケープ列の件数も表示します。

UTF-8 のバイトエンコードとどう違いますか?

このツールが示すのはコードポイントとエスケープであり、文字がディスク上で占めるバイトではありません。同じ文字でもコードポイントは 1 つ、UTF-8 バイトは複数になりがちです。エスケープではなく生のバイト値が必要なときはテキストをバイナリに変換するツールを使ってください。

テキストのエスケープは暗号化の一種ですか?

いいえ。エスケープは同じ文字を別の書き方にしただけで、誰でもそのまま戻せます。何も隠さないため、機微な情報の保護に使ってはいけません。

入力したテキストはどこかにアップロードされますか?

いいえ。エンコード、デコード、対応表はすべてブラウザー内で動作します。貼り付けた内容はサーバーに送られず、ソース片、ログ行、個人的なテキストは端末に留まります。

関連ツール

バイト単位の変換、HTML 実体参照、テキスト計測を、ツール集から離れずに引き続き試せます。