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で使用される&#xXXXX;形式の文字参照。 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