コンテンツへスキップ
uencoder

UTF-8

UTF-8はUnicodeの可変長符号化形式で、符号位置あたり1~4バイトを使用する。ASCIIと完全な後方互換性があり、ウェブと現代のシステムの事実上の標準である。

目的

すべてのUnicode符号位置をカバーしながらASCII互換を保ち(英語は拡張されず)、バイト順に依存せず自己同期するため、ネットワーク転送に適する。

メカニズム

符号位置の範囲がバイト長を決める。U+0000-007Fは1バイト、U+0080-07FFは2バイト、U+0800-FFFFは3バイト、U+10000-10FFFFは4バイトである。先頭バイトの先頭に立つ1のビット数がシーケンス長を示す。

ユースケース

  • HTML/XML/JSONドキュメントの既定エンコーディング
  • HTTPやメール本文の転送
  • ソースコードファイルのエンコーディング
  • データベースの既定文字セット

例

  • 入力
    A
    Output
    0x41

    An ASCII character, 1 byte

  • 入力
    U+4E2D
    Output
    0xE4 0xB8 0xAD

    A BMP CJK ideograph, 3 bytes

よくあるエラー

Truncating a UTF-8 string mid-sequence, producing invalid bytes
Truncate at character boundaries or use encoding-aware APIs

関連用語

関連ツール

References