
UTF-8 エンコーダー
QodexのUTF-8 エンコーダーで、任意のテキストをUTF-8エンコードされた16進数に簡単に変換できます。ハッシュアルゴリズムへの入力の準備、バイトストリームのデバッグ、ネットワーク経由の多言語データの送信など、さまざまな用途に対応します。また、UTF-8 デコーダーを使用してエンコードされたテキストをデコードすることで、往復検証も行えます。
UTF-8 エンコーダー - ドキュメント
UTF-8 エンコーディングとは?
UTF-8 エンコーディングとは、読み取り可能な文字をコンピューターが理解・保存できるバイト列に変換するプロセスです。UTF-8 は 「Unicode Transformation Format - 8 bit」 の略であり、ウェブ上で最も広く使われているエンコーディング方式です。
UTF-8 エンコーディングでは、すべての文字、数字、絵文字、記号が特定の16進数表現に対応しています。例えば、文字 A は 41 に、絵文字 ✔ は E2 9C 94 になります。
UTF-8 エンコーディング参照テーブル
このテーブルを使用して、一般的な文字とそのUTF-8 16進バイト表現を確認できます。
文字 | 説明 | コードポイント | UTF-8 16進バイト | バイト数 |
|---|---|---|---|---|
A | ラテン大文字A | U+0041 | 41 | 1 |
Z | ラテン大文字Z | U+005A | 5A | 1 |
0 | 数字ゼロ | U+0030 | 30 | 1 |
~ | チルダ | U+007E | 7E | 1 |
© | 著作権マーク | U+00A9 | C2 A9 | 2 |
é | アクセント付きラテンe | U+00E9 | C3 A9 | 2 |
ü | ウムラウト付きラテンu | U+00FC | C3 BC | 2 |
£ | ポンド記号 | U+00A3 | C2 A3 | 2 |
€ | ユーロ記号 | U+20AC | E2 82 AC | 3 |
✔ | 太いチェックマーク | U+2714 | E2 9C 94 | 3 |
中 | CJK「中」 | U+4E2D | E4 B8 AD | 3 |
界 | CJK「界」 | U+754C | E7 95 8C | 3 |
🚀 | ロケット絵文字 | U+1F680 | F0 9F 9A 80 | 4 |
𝄞 | ト音記号 | U+1D11E | F0 9D 84 9E | 4 |
UTF-8 vs ASCII vs UTF-16
機能 | ASCII | UTF-8 | UTF-16 |
|---|---|---|---|
文字範囲 | 128文字(英語のみ) | 全Unicode(110万以上の文字) | 全Unicode |
1文字あたりのバイト数 | 常に1 | 1〜4(可変長) | 2または4 |
ASCII互換 | はい(ASCII自体) | はい(後方互換) | いいえ |
最適な用途 | 英語専用のレガシーシステム | ウェブ、API、最新アプリ | Java/Windows内部処理、CJK多用テキスト |
ウェブでの使用率 | 減少傾向 | ウェブサイトの98%以上 | ウェブでは稀 |
UTF-8 エンコーディングの仕組み(内部処理)
UTF-8 はUnicodeコードポイントに応じて異なるバイトパターンを使用します。
Unicode範囲 | バイト数 | エンコード形式 | 例 |
|---|---|---|---|
U+0000〜U+007F | 1 | 0xxxxxxx | A = 41 |
U+0080〜U+07FF | 2 | 110xxxxx 10xxxxxx | é = C3 A9 |
U+0800〜U+FFFF | 3 | 1110xxxx 10xxxxxx 10xxxxxx | € = E2 82 AC |
U+10000〜U+10FFFF | 4 | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx | 🚀 = F0 9F 9A 80 |
エンコードの流れ:
入力文字列から各文字を読み取る
Unicodeコードポイントを取得する(例:'A' = U+0041)
バイナリに変換し、バイト数に基づいて正しいUTF-8構造に当てはめる
16進数として出力(スペース区切り、例:
41= 'A')
実用例
例1:シンプルなASCII(1バイト)
入力: A | コードポイント: U+0041 | UTF-8 16進: 41
例2:アクセント付きラテン文字(2バイト)
入力: é | コードポイント: U+00E9 | UTF-8 16進: C3 A9
例3:絵文字(4バイト)
入力: 🚀 | コードポイント: U+1F680 | UTF-8 16進: F0 9F 9A 80
例4:日本語文字(3バイト)
入力: 界 | コードポイント: U+754C | UTF-8 16進: E7 95 8C
PHP、Python、JavaScript でのUTF-8 エンコーディング
最も人気のある3つのウェブ開発言語でUTF-8 エンコーディングを扱う方法を紹介します。
PHP
// Encode string to UTF-8 (from another encoding) $text = "Cafe"; $utf8 = mb_convert_encoding($text, 'UTF-8', 'ISO-8859-1');// Get hex representation of UTF-8 bytes $hex = bin2hex("Cafe"); // Output: 436166c3a9
// Check string length in characters vs bytes echo mb_strlen("Cafe", 'UTF-8'); // 4 characters echo strlen("Cafe"); // 5 bytes
// Always use multibyte functions for UTF-8 strings echo mb_strtoupper("cafe", 'UTF-8'); // CAFE
// Pro tip: Set internal encoding globally mb_internal_encoding('UTF-8');
Python
# Encode a string to UTF-8 bytes text = "Cafe" utf8_bytes = text.encode("utf-8") print(utf8_bytes) # b'Caf\xc3\xa9'Get hex representation
hex_string = utf8_bytes.hex() print(hex_string) # 436166c3a9
Encode emoji
rocket = "\U0001F680" print(rocket.encode("utf-8").hex()) # f09f9a80
Read a file with explicit UTF-8 encoding
with open("data.txt", "r", encoding="utf-8") as f: content = f.read()
JavaScript
// Using TextEncoder (modern browsers and Node.js) const encoder = new TextEncoder(); const bytes = encoder.encode("Cafe"); console.log(bytes); // Uint8Array [67, 97, 102, 195, 169]// Convert to hex string const hex = Array.from(bytes) .map(b => b.toString(16).padStart(2, '0')) .join(' '); console.log(hex); // "43 61 66 c3 a9"
// URL-safe encoding (percent-encoded UTF-8) console.log(encodeURIComponent("Cafe")); // Output: Caf%C3%A9
// Encode emoji const rocketBytes = new TextEncoder().encode("\uD83D\uDE80"); console.log(Array.from(rocketBytes).map(b => b.toString(16)).join(' ')); // f0 9f 9a 80
一般的なUTF-8エンコーディングエラーと修正方法
エラー | 症状 | 原因 | 修正方法 |
|---|---|---|---|
文字化け(Mojibake) | 「Cafe」が「Café」と表示される | UTF-8バイトをLatin-1として読み込んでいる | HTTPヘッダーとHTMLのmeta タグでcharsetをUTF-8に設定する |
置換文字 | テキストが「Caf?」と表示される | 無効なバイト列 | ソースデータを有効なUTF-8として再エンコードする |
二重エンコード | 「Cafe」が「CafÃ�©」と表示される | UTF-8テキストを再度UTF-8でエンコードしている | 1回のみエンコードする。変換前に既存のエンコーディングを確認する |
文字の切り捨て | 絵文字やCJK文字が欠けているか破損している | バイト単位で文字列が切り取られている | 文字を認識する関数を使用する(PHPでは substr でなく mb_substr) |
BOMの問題 | ファイルの先頭に余分な文字がある | UTF-8 BOM(EF BB BF)がファイルの先頭に付加されている | エディタでファイルを「BOMなしUTF-8」として保存する |
データベースの文字化け | 保存・取得時に文字が破損する | DBまたは接続のcharsetが utf8mb4 に設定されていない | MySQLで |
HTMLとHTTPヘッダーでのUTF-8の確保
ウェブコンテンツをあらゆるブラウザと言語で正しく表示させるには:
HTML5:
<head>セクション内に<meta charset="utf-8">を追加するHTTPヘッダー: サーバーで
Content-Type: text/html; charset=utf-8を設定するデータベース: MySQLでは
utf8mb4charsetを使用する(3バイト文字のみ対応するutf8ではなく)ファイル: エディタでソースファイルをBOMなしUTF-8として保存する
UTF-8 エンコーディングの使用場面
APIとウェブリクエスト:多言語または絵文字を含むデータを安全に送信する
データエクスポート:入力のバイト正確なバージョンを保存する
エンコーディングのデバッグ:テキストの破損がエンコーディングエラーによるものかを確認する
暗号化とハッシュ:ハッシュ計算(例:SHA-256)のために文字列をバイトに変換する
データベースへの挿入:一部のデータベースはUTF-8エンコードされた文字列を16進数として受け取る
組み合わせをお勧めするツール
UTF-8 デコーダー -- エンコードされた16進数を読み取り可能なテキストに変換する
Base64 エンコーダー -- UTF-8バイトをBase64エンコードして安全に転送する
URL エンコーダー -- ブラウザ通信のために16進数をURL安全な形式にする
プロのヒント
ASCII文字(A〜Z、0〜9、記号)は1バイトです。絵文字や特殊文字は2〜4バイトを使用します。
ネットワークやAPIの通信をデバッグする際に、このツールを使ってバイトレベルの整合性を確認してください。
文字が他のシステムで正しく表示されない場合は、ここでエンコードしてバイト内訳を確認してください。
必要に応じて、エンコードされた出力をHTTPヘッダー、Cookie、またはtoken に直接コピーしてください。
エンコーディングの問題を早期に発見するために、マルチバイト文字(アクセント付き文字、CJK、絵文字)で常にテストしてください。
Frequently Asked Questions
どのような入力形式に対応していますか?
一部の文字で出力が長くなるのはなぜですか?
このツールは安全ですか?
バイナリデータをエンコードできますか?
UTF-8文字は何バイトを使用しますか?
UTF-8 BOMとは何ですか?
UTF-8エンコーディングとURLエンコーディングの違いは何ですか?
内部でどのエンコーディング形式を使用していますか?
Related Tools
Related Articles




