Unicode コンバーター

テキストを JavaScript の \uXXXX / \u{HEX} シーケンスとしてエスケープし、エスケープ混在文字列をテキストに戻し、すべての文字をコードポイントとして検査します:U+ 16 進、10 進、UTF-8 バイト、UTF-16 ユニット、JS エスケープ。 宇宙面コードポイント(絵文字)がサロゲート半片に分割されることは決してありません。
すべての処理はブラウザー内でローカルに行われます — データはサーバーに一切アップロードされません。
エスケープ形式:
エンコード:テキストは Unicode コードポイントに分割され(絵文字は無傷のまま)、各ポイントが JavaScript エスケープシーケンスとして書き出されます。
デコード:すべての \uXXXX、\u{hex}、U+hex シーケンス(大文字・小文字両方)が対応する文字に変換されます。隣接するサロゲートペアのエスケープは 1 つのコードポイントにマージされます。エスケープされていないテキストはそのまま通過します。
インスペクター:各コードポイントがタブ区切りの 1 行になります:文字、U+HEX、10 進、UTF-8 バイト、UTF-16 ユニット、JS エスケープ。表全体を出力からコピーまたはダウンロードできます。
入力欄で Ctrl+Enter を押すと現在のモードを実行します。
エンコード / デコード / インスペクターを選んで実行します。すべての処理はブラウザー内で完結します。
インスペクターの列の読み方:
U+HEX はコードポイントの 16 進表記、10 進は同じ数値の base 10 表記です。UTF-8 バイトは、その文字を UTF-8 として書いたときに占める 1〜4 バイトを示します(例:中 = E4 B8 AD)。UTF-16 は JavaScript 文字列内でその文字が使う 1 個または 2 個の 16 ビットユニットを示します(U+FFFF を超える絵文字は 2 ユニット、いわゆる「サロゲートペア」が必要です。例:U+1F600 = D83D DE00)。JS エスケープは、その文字の推奨されるソースコード形式です。
サンプルボタンが読み込むもの:
現在のモードに対応した例であり、決して固定テキストではありません。1 つのテキストで 3 つのモードを兼ねられないからです。 エンコードとインスペクターは素の文字を受け取るので、Hello 中文! 🎉 — ASCII、CJK、全角記号、絵文字 1 個 — が読み込まれます。デコードはエスケープシーケンスを受け取りますが、普通の文にはエスケープが含まれません:そのまま逐語的に返されるだけで、モードとして表示するものがなくなってしまいます。そこでデコードには Say 中文 \u{1F600} U+0041 🎉 OK が読み込まれます。これはデコーダーが受け付けるすべての形式を 1 つずつ含んでいます(小文字の \uXXXX ペア、\u{HEX} の波括弧、U+hex 形式、隣接サロゲートペア、エスケープでない単語)。ボックスの下の行に確認すべき結果が示されます。エンコードでは、この行はエスケープ形式と ASCII チェックボックスにも従うため、サンプルをもう一度押すと他の 3 形式も確認できます。
Unicode とは何か?

Unicode は、あらゆる文字体系のあらゆる文字に番号(コードポイント)を割り当てる単一のカタログです。U+0000 から U+10FFFF まで — 65,536 ずつの 17 の面に配置された 1,114,112 個のスロット。第 1 面の基本多言語面(BMP)に現存言語の大部分の文字が収まり、絵文字の多くと歴史的文字体系の多くは上位の「宇宙面」にあります。

UTF-8、UTF-16、UTF-32 は互いに競合する文字集合ではなく、それらの数値をバイト列に直列化する 3 つの方法です — インスペクターモードでは、同じ文字についてこの 3 つすべてを JavaScript エスケープ形式と並んで表示します。

Unicode は文字に名前と番号を与えます。UTF-8/UTF-16/UTF-32 や \uXXXX エスケープは、同じ番号を書き下す異なる方法にすぎません。