Unicode変換ツール
文字コード変換を簡単に!
Unicode・UTF-8・エスケープシーケンスなど、多彩な変換に対応
Unicodeとは
Unicodeは、世界中のすべての文字を一意に表現するための国際規格です。 コンピュータ上で文字を扱う際の標準的な文字コード体系として広く使用されています。 現在のUnicodeは14万以上の文字を収録し、絵文字や数学記号なども含まれています。
Unicodeの特徴
- 世界中の文字を統一的に扱える
- 多言語対応のシステムに必須
- 文字化けを防ぐことができる
- プログラミングで広く使用
- サロゲートペアによる拡張文字対応
- 正規化による文字の正規表現
主な用途
- Webアプリケーション開発
- 多言語対応システム
- 文字コード変換
- 国際化対応
- データベースの文字列処理
- テキストエディタの実装
文字エンコーディング
UTF-8
最も広く使用されているUnicodeエンコーディング方式です。
- 1バイトから4バイトの可変長エンコーディング
- ASCII文字は1バイトで表現(互換性)
- 日本語などは3バイトで表現
- Webで標準的に使用
例: A → 41 (1バイト) あ → E3 81 82 (3バイト) 🌟 → F0 9F 8C 9F (4バイト)
UTF-16
Windowsやプログラミング言語で使用される16ビット単位のエンコーディング。
- 基本的に2バイト固定長
- サロゲートペアで4バイト文字に対応
- JavaScriptの内部表現
- Windowsのデフォルト
例: A → 0041 あ → 3042 🌟 → D83C DF1F (サロゲートペア)
変換方式の詳細
Unicodeエスケープシーケンス
\uXXXX形式で文字を表現します。 JavaScriptやJavaなどのプログラミングで使用される一般的な形式です。
// JavaScript例 const text = "\u3053\u3093\u306B\u3061\u306F"; console.log(text); // こんにちは // Java例 String text = "\u3053\u3093\u306B\u3061\u306F";
HTML文字参照
HTMLで使用されるXXXX;形式の文字参照。 Webページで特殊文字を表示する際に使用。
<p> こんにちは </p> // 結果:こんにちは
コードポイント表記
U+XXXX形式で文字を表現。 Unicode規格での正式な表記方法。
例: U+3042 → あ U+1F31F → 🌟 U+5B57 → 字
プログラミング言語での実装例
JavaScript
// 文字をUnicodeに変換 const str = "こんにちは"; const unicode = str.split('').map(char => '\\u' + char.charCodeAt(0) .toString(16) .padStart(4, '0') ).join(''); // Unicodeから文字に戻す const decoded = unicode.replace( /\\u([0-9a-fA-F]{4})/g, (_, p1) => String.fromCharCode( parseInt(p1, 16) ) );
Python
# 文字をUnicodeに変換 text = "こんにちは" unicode = ''.join( f'\\u{ord(c):04x}' for c in text ) # Unicodeから文字に戻す decoded = unicode.encode() .decode('unicode-escape')
高度な使用例
正規化(Normalization)
異なる方法で表現された同じ文字を統一する処理。 NFC、NFD、NFKC、NFKDの4つの正規化形式があります。
// JavaScript例 const text = "ガ"; // U+30AC const nfd = text.normalize('NFD'); // → U+30AB (カ) + U+3099 (濁点)
サロゲートペア処理
UTF-16で表現できない文字(U+10000以上)を 2つの16ビット値で表現する方式。
// JavaScript例 const emoji = "🌟"; console.log(emoji.length); // 2 console.log( emoji.codePointAt(0) .toString(16) ); // 1f31f
よくある質問
Unicodeは文字コードの一種で、世界中の文字を統一的に扱うための規格です。 従来の文字コード(Shift-JISなど)が特定の言語や地域に特化していたのに対し、 Unicodeはすべての文字を統一的に扱うことができます。
- Unicode:世界中の文字を一意に識別する規格
- UTF-8/UTF-16:Unicodeの実装方式
- Shift-JIS:日本語特化の文字コード
- ASCII:英数字のみの文字コード
用途や環境によって適切な選択が異なります:
- UTF-8:
- Webアプリケーション
- ファイルシステム
- ネットワーク通信
- Unix系システム
- UTF-16:
- Windowsアプリケーション
- Java内部処理
- JavaScript文字列
- メモリ効率重視の場合
UTF-16で基本多言語面(BMP)を超える文字を表現するための仕組みです:
- U+10000以上の文字を2つの16ビット値で表現
- 絵文字や特殊文字で多用
- 文字列長やインデックス処理に注意が必要
// 例:🌟 High Surrogate: D83C Low Surrogate: DF1F 実際のコードポイント: U+1F31F