HTML 速習チュートリアル

HTML 文字セット (HTML Charsets)

ブラウザが HTML ドキュメントを正しく表示するためには、そのドキュメントがどの文字セット(Character Set / Charset)を使用しているかを知る必要があります。これを誤ると、いわゆる「文字化け」が発生し、ユーザーにとって読めないコンテンツになってしまいます。

1. 文字セットとは何か?

コンピュータは文字を直接理解することはできません。すべての文字(A, B, あ, 😊 など)は、コンピュータ内部で処理可能なバイナリ数値(0と1の組み合わせ)として保存されます。

この「どの数値がどの文字に対応するか」という変換表のルールが文字セットです。

2. 文字セットの歴史的変遷

Web の歴史とともに、使用される文字セットは進化してきました。

2.1 ASCII (アスキー)

初期のコンピュータで使用された標準。英数字、記号、制御文字(合計128文字)のみを定義していました。英語以外の言語には対応していません。

2.2 ISO-8859-1 (Latin-1)

HTML 2.0 から 4.01 におけるデフォルトの文字セット。ASCII を拡張し、西欧諸国の特殊文字(アクセント付き文字など)に対応しましたが、日本語のような多バイト文字には不十分でした。

2.3 UTF-8 (Unicode)

現在の Web における絶対的な標準です。Unicode 規格のすべての文字を網羅しており、世界中のほぼすべての言語、記号、そして絵文字(Emoji)を一つの形式で表現できます。

3. HTML での文字セット指定方法

HTML5 において、文字セットを指定するのは非常に簡単です。<head> 要素内のなるべく上の位置に、以下のメタタグを記述します。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>文字セットのデモ</title>
</head>
<body>
  <h1>こんにちは世界!</h1>
  <p>UTF-8 を使えば、どんな言語も絵文字(😊)も表示できます。</p>
</body>
</html>
[!IMPORTANT]
記述位置に注意!
ブラウザはファイルを上から順に読み込みます。文字セットの宣言は、<title> やその他のテキストコンテンツよりもに記述するのが鉄則です。これにより、タイトルが文字化けするリスクを最小限に抑えられます。

4. 主な文字セットの比較

文字セット特徴互換性
ASCII7ビット。基本的な英数字のみ。すべての基礎
ISO-8859-18ビット。西欧言語に対応。過去の標準
UTF-8可変ビット。世界中の全文字・絵文字に対応。現在の世界標準

5. まとめ

現代の Web 開発において、UTF-8 以外の文字セットを選択する理由はほぼありません。

  • 多言語対応: 日本語、英語、中国語、アラビア語などが混在しても問題なし。
  • 絵文字対応: モダンなコミュニケーションに欠かせない Emoji もサポート。
  • SEO・互換性: 検索エンジンやブラウザも UTF-8 を前提として最適化されています。

「文字化け」という古くて新しい問題を未然に防ぐために、新しい HTML ファイルを作成したら真っ先に <meta charset="UTF-8"> を書き込む習慣をつけましょう。