ToolActToolAct

Unicode エンコード変換ツール

テキストとUnicodeエンコードの相互変換、複数フォーマット出力対応

入力内容
文字数: 0
コードポイント数: 0
変換結果
文字数: 0

文字コードポイント詳細(クリックでコピー)

テキストを入力すると各文字のコードポイントが表示されます

Unicodeとは?

Unicode(ユニコード)は、コンピュータ科学分野の業界標準であり、世界の大部分の文字体系を整理・エンコードしています。各Unicode文字には一意の番号が割り当てられ、コードポイント(Code Point)と呼ばれ、通常16進数でU+プレフィックス付きで表記します(例:U+4E2Dは漢字「中」を表す)。Unicodeエンコード変換ツールは、テキストをさまざまなUnicode表現形式に変換したり、Unicodeエンコードをテキストに戻したりすることができます。

使い方

手順

  1. 変換するテキストを入力欄に入力または貼り付けてください
  2. 変換方向を選択してください:テキストからUnicode、Unicodeからテキスト
  3. 出力形式を選択してください:\uXXXXまたはU+XXXX(エンコード時に利用可能)
  4. 結果は自動表示され、ワンクリックでコピーや入力/出力の入れ替えが可能です

エンコード時の注意点

  • Unicodeエスケープ形式はコードやデバッグに便利ですが、通常の文章では可読性が低下する可能性があります。
  • デコード時はサロゲートペアと絵文字の出力を確認してください。ペアを分割すると文字化けが発生する可能性があります。

利用シーン

テキストをUnicodeエスケープ形式にエンコードテキストをJavaScript形式の\uXXXXシーケンスやU+XXXXコードポイント表記に変換します。U+FFFFを超える文字はエスケープモードではサロゲートペアとして表現されますが、詳細グリッドでは完全なコードポイントが表示されます。変換はローカルのString.prototype.codePointAtとfromCodePointによる処理のため、エスケープされた出力をコピーするまで文字データはローカルに留まります。
Unicodeエスケープを読みやすいテキストにデコード\uXXXX、\u{...}、U+XXXXパターンを文字にデコードし、復元されたテキストをコピーします。ログ、JSON文字列、ローカライズファイル、コードやAPIからのエスケープされたスニペットの確認に役立ちます。デコードはページ内のfromCharCodeとfromCodePointで実行されるため、ソース文字列と再構築された文字はブラウザタブの外に出ません。社内文書や未公開の製品名を含むスニペットの分析に便利です。
個々のコードポイントを確認入力された各文字が表示文字とU+値とともに一覧表示され、タイルをクリックするとそのコードポイントがコピーされます。文字数とコードポイント数は別々に表示され、絵文字やその他の複合ユニット文字で重要な違いを確認できます。グリッドはメモリ上の入力文字列のイテレーションから構築されるため、コードポイント全体のマップはサードパーティのUnicode検索サービスにテキストを送信せずにローカルでレンダリングされます。
文字化けや二重エンコード文字列を発見'é'や'中文'のように見える文字列を貼り付けてデコードし、疑われる元のエンコーディング(UTF-8とLatin-1)で再エンコードして、ソースがキャプチャ時の文字化けではなく二重エンコードであったことを確認します。この検査は完全にブラウザ側で行われ、TextDecoder、コードポイントイテレーション、再エンコードすべてがページ内で完結するため、ログから取得した本番環境の文字列をアップロードせずに分析できます。
絵文字と結合マークをコードポイント単位でカウントコードポイントグリッドを使用して、複数のスロットを占有する家族絵文字、国旗シーケンス、結合ダイアクリティカルマークを特定します。文字数とコードポイント数の区別により、「1文字」の文字列が7つのUTF-16ユニットを消費する理由が明確になります。カウントは入力に対するローカルイテレーションのため、機密性の高いコンテンツを含む文字列でも、データベースカラムやワイヤフォーマットの制限に合わせたサイズ確認をブラウザ内で行えます。

仕組み

Unicode標準(ISO/IEC 10646)は、17のプレーン(U+0000〜U+10FFFF)にわたり、すべての文字に一意の数値コードポイントを割り当てています。基本多言語プレーン(BMP、プレーン0)はU+0000〜U+FFFFをカバーし、CJK統合漢字を含むほぼすべての現代の書記体系を収録しています。補助プレーン(1〜16)には歴史的な文字体系、希少CJK、絵文字、特殊用途の文字が含まれます。本ツールは、人間が読めるテキストと2つの機械向け表現(JavaScriptスタイルの\uXXXXエスケープシーケンスと標準のU+XXXX表記)を相互変換します。 UTF-16はJavaScript文字列の内部エンコーディングであり、BMP文字はコードポイントと等しい単一の16ビットコードユニットとして格納され、補助文字(U+10000以上)はサロゲートペアとしてエンコードされます。具体的には、コードポイントから0x10000を引いた20ビットの値を、上位サロゲート(0xD800 + ((cp - 0x10000) >> 10))と下位サロゲート(0xDC00 + ((cp - 0x10000) & 0x3FF))の10ビットずつに分割します。本ツールのエンコードモードではString.prototype.codePointAt()を用いて補助コードポイントを検出し、\uXXXX形式では正しい2つの\uエスケープを生成します。U+XXXX形式では完全なコードポイントが直接表示されます。 デコードモードは3つの構文を解析します:\uXXXX(4桁の16進数、BMPのみ)、\u{XXXXX}(ES6の波括弧構文、Unicode全体に対応)、U+XXXX(可変長16進数の標準表記)。正規表現 /\\u\{([0-9a-fA-F]+)\}/g が波括弧エスケープを処理してString.fromCodePoint()に渡し、/\\u([0-9a-fA-F]{4})/g が従来のエスケープをString.fromCharCode()で処理します。この2つのパターンを組み合わせることで、補助文字が2つの\uエスケープとしてエンコードされていた場合もサロゲートペアを正しく再構築できます。 UTF-8エンコーディングはバイト長に影響します。BMP文字「中」(U+4E2D)は3バイト(E4 B8 AD)ですが、絵文字「😀」(U+1F600)は4バイト(F0 9F 98 80)を必要とします。本ツールの文字カウンターはコードポイント数とUTF-16コードユニット数を区別し、データベースやAPI、フォームフィールドでコードユニット単位の長さ制限をデバッグする際に有用な差異を可視化します。

  • コードポイントイテレーション:String.prototype.codePointAt(pos)は補助文字に対して完全なコードポイントを正しく返します。charCodeAt()は上位サロゲートのみを返すのとは異なり、本ツールではスプレッド演算子 [...str] を使用してコードポイント単位でイテレーションしています。これは内部的に文字列イテレータプロトコルを呼び出します。
  • サロゲートペアの計算:補助コードポイント CP > 0xFFFF の場合、上位サロゲートは Math.floor((CP - 0x10000) / 0x400) + 0xD800、下位サロゲートは ((CP - 0x10000) % 0x400) + 0xDC00 で求められます。エンコードモードではこの式を適用して有効な \uD800\uDC00 ペアを生成します。
  • デコード用正規表現パイプライン:3つのパターンを順次実行します。\u{XXXXX}(ES6波括弧)→ \uXXXX(4桁16進数)→ U+XXXX(標準表記)の順で、fromCodePoint()が波括弧とU+パスを処理し、fromCharCode()が従来の4桁パスを処理します。
  • UTF-8バイト構造:BMP文字は1〜3バイト(ASCII=1バイト、ラテン補助=2バイト、CJK=3バイト)、補助文字は11110xxx 10xxxxxx 10xxxxxx 10xxxxxx パターンの4バイトを使用します。ツールのバイトカウンターは new Blob([str]).size を使用して正確に計測します。
  • コードポイントとコードユニットの違い:1つの表示文字が複数のコードポイントを占める場合があります(例:éはU+00E9またはU+0065 + U+0301の結合アクセント)。本ツールはcharCount(UTF-16コードユニット)とcodepointCount(Unicodeスカラー値)の両方を報告し、この差異を可視化します。
  • Unicodeプレーンの概要:プレーン0(BMP)=現代の書記体系、プレーン1(SMP)=歴史的文字+絵文字+数学記号、プレーン2(SIP)=希少CJK、プレーン14(SSP)=タグ+異体セレクタ、プレーン15〜16=私用領域。エンコードモードはcodePointAt()を介してすべてのプレーンを正しく処理します。
  • \uとU+表記の違い:\uXXXXはJavaScript/Java/Cのエスケープシーケンス(波括弧なしではBMPのみ対応)、U+XXXXはUnicodeコンソーシアムの正規表記(最低4桁の16進数、上限なし)。ツールのフォーマット切替でこれらの表現を切り替えられます。

使用例

中国語から Unicode エスケープ

入力:  你好世界(CJK 4文字、UTF-8 で12バイト)
出力: \u4f60\u597d\u4e16\u754c
注意:   BMP 内のコードポイントのみ。JSON 文字列、JavaScript リテラル、ログファイルで有用

絵文字からサロゲートペアエスケープへ

入力:  😀🎉(絵文字2つ、いずれも U+FFFF を超える)
出力: \uD83D\uDE00\uD83C\uDF89
注意:   BMP 外の文字は UTF-16 サロゲートペアとしてエンコードされる。古い JS エンジンで往復変換するには String.fromCodePoint が必要

Unicode エスケープのデコード

入力:  \u4e2d\u6587\u6d4b\u8bd5
出力: 中文测试
注意:   エスケープされた文字列を貼り付けると、ツールがエンコードを反転する。CJK ペイロードのデバッグでは出力バイトがソースと一致するか確認

よくある質問

このツールは各文字について何を表示しますか?

コードポイント(10進数と16進数)、ブロック名(例:Basic Latin、CJK Unified Ideographs)、カテゴリ(文字、数字、記号、句読点など)、Unicode名、加えてUTF-8 / UTF-16 / UTF-32のバイト表現です。エンコーディングのバグデバッグや、適切な文字を選ぶのに役立ちます。

UTF-8、UTF-16、UTF-32の違いは何ですか?

3つとも同じUnicode文字をエンコードします。UTF-8はコードポイントあたり1〜4バイトを使用し、ASCIIとバイト互換です(Webの主流エンコーディング)。UTF-16は2または4バイトを使用します(JavaScriptとWindowsで内部的に使用)。UTF-32は常に4バイトを使用します(ネットワーク上ではほとんど見かけず、メモリ内で一般的)。

なぜ「𝓗」が2つのUTF-16コードユニットとして表示されるのですか?

U+FFFFを超えるコードポイント(基本多言語面の外)は、UTF-16では「サロゲートペア」(2つの16ビット半分)としてエンコードされます。JavaScriptのstring.lengthはこれを2としてカウントしますが、Array.from(str)は1つとして扱います。本ページは両方のビューを表示するので、長さカウントの予期せぬ動作をデバッグできます。

正規化形式(NFC/NFD/NFKC/NFKD)とは何ですか?

Unicodeでは、同じ表示テキストに複数の表現が許されます。éは1つのコードポイント(U+00E9)でも、e + 結合用アクサンテギュ(U+0065 U+0301)でも表せます。NFCは合成し、NFDは分解します。NFKC/NFKDはさらに互換文字を畳み込みます(½ → 1/2)。文字列比較やハッシュ化の前には必ず正規化してください。

なぜ絵文字が時々四角く表示されるのですか?

ブラウザのフォントにそのグリフがないからです。最新の絵文字はZWJシーケンス(例:👨‍👩‍👧 = 男性 + ZWJ + 女性 + ZWJ + 女の子)を使用し、1つの画像としてレンダリングするには特定のフォントが必要です。古いフォントでは3つの個別の絵文字または四角が表示されます。

名前で文字を検索するにはどうすればよいですか?

検索ボックスに名前(または一部)を入力してください。名前は公式Unicode名リストに従います(LATIN SMALL LETTER A、GREEK CAPITAL LETTER OMEGA、MUSICAL SYMBOL G CLEF)。一般的な絵文字には本ページが認識する「CLDRショートネーム」もあります。

入力はアップロードされますか?

いいえ。検索はブラウザ内のUnicodeデータベースを使用します。何もアップロードされません。

関連ツール

Base64 エンコードデコードツール

オンラインBase64エンコード・デコードツール。UTF-8テキスト、日本語、画像変換をサポート。リアルタイムエンコード・デコード、ソフトウェアインストール不要、データはローカル処理でプライバシー保護。

URL エンコードデコードツール

オンラインURLエンコード・デコードツール。特殊文字、日本語パラメータを自動処理。URLパラメータを素早く変換し、文字化け問題を解決し、データの正確な送信を確保。

HTML エンティティエンコードツール

オンラインHTMLエンティティエンコード・デコードツール。特殊文字をHTMLエンティティに変換。XSS攻撃を防止し、HTMLコードの安全な表示を確保。

大文字小文字変換ツール

オンライン大文字・小文字変換ツール。キャメルケース、スネークケース、ケバブケース、定数など複数命名フォーマットの相互変換。プログラマー必須、ワンクリックで変数名フォーマットを変換。

簡繁変換ツール

オンライン簡体字・繁体字変換ツール。簡体字中国語と繁体字中国語の相互変換をサポート。中国本土、台湾、香港の複数標準を提供し、地域による用語差を処理。

ASCIIコード表

オンラインASCIIコード表参照ツール、制御文字、印刷可能文字、拡張文字を含む。検索とカテゴリフィルタ対応、文字コードを素早く検索。