NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
UTF-8 エンコーダー

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進数表現に対応しています。例えば、文字 A41 に、絵文字 ✔ は 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

エンコードの流れ:

  1. 入力文字列から各文字を読み取る

  2. Unicodeコードポイントを取得する(例:'A' = U+0041)

  3. バイナリに変換し、バイト数に基づいて正しいUTF-8構造に当てはめる

  4. 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で utf8mb4 charsetを使用する。接続のcharsetを設定する

HTMLとHTTPヘッダーでのUTF-8の確保

ウェブコンテンツをあらゆるブラウザと言語で正しく表示させるには:

  • HTML5: <head> セクション内に <meta charset="utf-8"> を追加する

  • HTTPヘッダー: サーバーで Content-Type: text/html; charset=utf-8 を設定する

  • データベース: MySQLでは utf8mb4 charsetを使用する(3バイト文字のみ対応する utf8 ではなく)

  • ファイル: エディタでソースファイルをBOMなしUTF-8として保存する

UTF-8 エンコーディングの使用場面

  • APIとウェブリクエスト:多言語または絵文字を含むデータを安全に送信する

  • データエクスポート:入力のバイト正確なバージョンを保存する

  • エンコーディングのデバッグ:テキストの破損がエンコーディングエラーによるものかを確認する

  • 暗号化とハッシュ:ハッシュ計算(例:SHA-256)のために文字列をバイトに変換する

  • データベースへの挿入:一部のデータベースはUTF-8エンコードされた文字列を16進数として受け取る

組み合わせをお勧めするツール

プロのヒント

  • ASCII文字(A〜Z、0〜9、記号)は1バイトです。絵文字や特殊文字は2〜4バイトを使用します。

  • ネットワークやAPIの通信をデバッグする際に、このツールを使ってバイトレベルの整合性を確認してください。

  • 文字が他のシステムで正しく表示されない場合は、ここでエンコードしてバイト内訳を確認してください。

  • 必要に応じて、エンコードされた出力をHTTPヘッダー、Cookie、またはtoken に直接コピーしてください。

  • エンコーディングの問題を早期に発見するために、マルチバイト文字(アクセント付き文字、CJK、絵文字)で常にテストしてください。

Frequently Asked Questions

どのような入力形式に対応していますか?

絵文字、記号、あらゆる言語のスクリプトを含む、読み取り可能なUnicodeテキストを入力できます。

一部の文字で出力が長くなるのはなぜですか?

UTF-8 は可変長エンコーディングを使用します。ASCII文字(A〜Zなど)は1バイト、アクセント付き文字は2バイト、CJK文字と一般的な記号は3バイト、絵文字は4バイトを使用します。

このツールは安全ですか?

はい。すべてのエンコーディングはJavaScriptを使用してブラウザ内でローカルに処理されます。データはサーバーに送信されません。

バイナリデータをエンコードできますか?

このツールはテキストのエンコーディング用に設計されています。バイナリファイルには16進数コンバーターまたはバイナリエンコーダーをご使用ください。

UTF-8文字は何バイトを使用しますか?

文字によって異なります。ASCII(U+0000〜U+007F)は1バイト、ラテン/ギリシャ/キリル文字(U+0080〜U+07FF)は2バイト、CJKと多くの記号(U+0800〜U+FFFF)は3バイト、絵文字と稀なスクリプト(U+10000〜U+10FFFF)は4バイトです。最大は1文字あたり4バイトです。

UTF-8 BOMとは何ですか?

BOMはByte Order Mark(バイト順マーク)の略です。UTF-8では、ファイルの先頭に配置される3バイトのシーケンスEF BB BFです。UTF-16とは異なり、UTF-8はバイト順が常に同じであるためBOMを必要としません。しかし、一部のWindowsプログラム(Notepadなど)は自動的にBOMを追加します。BOMはPHPスクリプト、CSVパース、シェルスクリプトで問題を引き起こす可能性があります。ベストプラクティス:テキストエディタでファイルを「BOMなしUTF-8」として保存してください。

UTF-8エンコーディングとURLエンコーディングの違いは何ですか?

UTF-8エンコーディングはテキスト文字を生のバイト列に変換します(例:ユーロ記号はE2 82 ACになります)。URLエンコーディング(パーセントエンコーディング)はUTF-8バイトを取得し、URL内で安全に使用できるようにパーセント記号でラップします(例:ユーロ記号は%E2%82%ACになります)。URLエンコーディングはUTF-8の上に構築されています。まず文字をUTF-8でエンコードし、次に各バイトをパーセントエンコードします。

内部でどのエンコーディング形式を使用していますか?

Unicode Consortium(RFC 3629)によって定義されたUTF-8規格を使用しています。これは世界中のウェブサイトの98%以上が使用しているエンコーディングと同じです。

APIを今すぐテストする

Qodexは平易な日本語で書いたテスト仕様を、安全ですぐに実行できるテストに変換します。