Charset
文字セット(charset)とは、文字から符号位置への対応表であり、符号化形式(UTF-8 など)と組み合わさって、テキストがバイト列になる方法を決定する。
目的
文字と数値の対応を定め、コンピュータがテキストを保存・伝送・表示できるようにする。
メカニズム
文字セットは文字から符号位置への対応(U+4E2D がある常用漢字の符号位置である、など)を定義し、符号化形式は符号位置がバイト列になる方法(UTF-8 では 3 バイト、など)を定義する。HTTP の Content-Type charset パラメータは符号化形式を宣言する。
ユースケース
- Web ページの文字符号化宣言
- データベース列の文字セット設定
- ファイルの符号化検出と変換
- プロトコルのテキストフィールド符号化
例
- 入力
Content-Type: text/html; charset=utf-8OutputThe browser decodes the page as UTF-8Declaring the encoding form
よくあるエラー
- Confusing a character set (e.g., Unicode) with an encoding form (e.g., UTF-8)
- Keep them distinct: the character set defines code points, the encoding form defines bytes
関連用語
ASCII
ASCII(American Standard Code for Information Interchange)は 7 ビット文字符号化標準であり、128 文字(0-127)を定義し、英字、数字、記号、制御文字を含む。 用語集
Unicode
Unicode は国際的な文字符号化標準で、世界中のほぼすべての文字体系の各文字に一意の符号位置(U+0000〜U+10FFFF)を割り当てる。符号空間は 1,114,112 点である。 用語集
UTF-8
UTF-8はUnicodeの可変長符号化形式で、符号位置あたり1~4バイトを使用する。ASCIIと完全な後方互換性があり、ウェブと現代のシステムの事実上の標準である。 用語集
UTF-16
UTF-16はUnicodeの可変長符号化形式で、符号位置あたり2バイトまたは4バイトを使用する。BMPの文字は1つの16ビット符号単位、追加面の文字はサロゲートペア(2単位)で表する。 用語集
BOM
BOM(バイトオーダーマーク)は Unicode 文字 U+FEFF であり、テキストストリームの先頭に置いて符号化形式とバイト順を示す。 用語集
関連ツール
文字コードリファレンス
Reference table of character encodings。無料、プライベート、100%クライアントサイド。 ツール
エンコーディング検出ツール
テキストのエンコーディング形態を確認:ASCII サブセット、UTF-8 BOM、非 ASCII 文字の有無。テキスト入力は常に UTF-8 として再エンコードされるため、GBK/Big5/Shift-JIS などのレガシーエンコーディングは区別できません。無料、プライベート、100%クライアントサイド。 ツール
Unicode コンバーター
Convert text to Unicode code points, UTF-8 hex, or UTF-16 hex online。無料、プライベート、100%クライアントサイド。 ツール
HTML 文字コード検出
HTML meta タグから文字セットを検出。 ツール