HTMLで文字コードの宣言を

せんせい

文字コードの宣言を入力しておこう。以上。

簡単すぎます!何ですか文字コードって!?

せんせい

こんなページを見たことはないか? 文字化けしちゃってるページ

あー、あります。読めないんですよね。

せんせい

パソコンで入力できる文字は、見た目は同じでも文字コードが違う場合がある。ホームページの文字が化けるのは、使っている文字コードとブラウザが自動選択している文字コードが違うからなのだ。

初心者

文字が化けてるページでも、上部メニューの表示→エンコードで読めるようになるのは、そういうことですか。※文字化けしちゃってるページの例は無理やり文字化けさせているので、エンコードを選んでも直りません。

せんせい

ホームページの文字化けは手動で直せるが、どうせなら化けないように対策をする。各ページの<head></head>の間に↓の赤文字部分をコピーして文字コードを宣言しよう。

<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>ページ名</title>
</head>
せんせい

意味は「このファイルはシフトJISという文字コードで書かれたHTMLファイルですよ」だな。これで必ず化けないって事は無いんだが、指定したほうが化けにくい。

シフトJIS以外にも文字コードはあるんですよね?

せんせい

他にもJIS、EUC、Unicodeなど、たくさん種類があるのだ。なぜ、ここでシフトJISを指定したかというと、メモ帳で作った文章はシフトJISで保存されるから、当然シフトJISを指定しないといけないわけだ。その他、WINDOWS系のソフトの多くはシフトJISを採用している。

なるほど。でも、ややこしいですよね。どうして文字コードを一つにしないんでしょう?

大人の事情。

大人ってずるい!

 

 Googleで検索
詳しく知りたい人は「文字コードの種類」で検索してみてください

HTMLのDTD宣言

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<head>
<title>ページ名</title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>

せんせい

もうひとつ重要なものがある。DTD宣言を入れておこう。↑の赤文字部分をコピーする。意味は「このページは、W3Cが取り決めたHTML4.01という定義に沿って書かれています。」だ。

DTD?W3C?なんですか、それ?

せんせい

DTDとはDocumet Type Definitionの略で文章型定義のこと。簡単に言うとタグのルールが書いてある文章だ。W3Cというのは、その定義を取り決めている組織の名称。

初心者

つまり、W3Cが取り決めているHTMLのルールに沿って作りましたって意味ですね。

せんせい

この宣言が無いと、将来的に同じソースでもブラウザで見え方が変わってくるかもしれないから、ちゃんと入力しておくこと。HTML4.01のDTD宣言は以下のようなものがある。


HTML4.01 Strict
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

HTML4.01 Transitional
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

HTML4.01 Frameset
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

※2行目のhttpで始まるDTDの内容を示す行は省略可能。


あれ、3番目の宣言はフレームページで使うんですよね。1番目と2番目ってどう違うんですか?

せんせい

HTML4.01 Strictは、W3Cが勧告している通りの文法・タグの使い方を完全に守っていますよという意味。このページで使ったHTML4.01 Transitionalは文法・タグの使い方を完全には守っていません。もしくはHTML4.01 Strictや次世代言語XHTMLへ移行する途中ですという意味がある。

初心者

僕みたいに勉強中の人や、W3Cの取り決めたHTMLのルールどおりには作っていないページにつけるってことですね。

せんせい

実際のところHTML4.01 Strictを指定できるほどHTMLのルールを守っているページは、とても少ない。このページにしてもHTMLのルールを無視しまくっている。話が長くなるので、ここでは書かないが、HTMLには厳密なルールが本来あるという事を覚えておいてほしい。

その厳密なルールは勉強しなくていいんですか?

せんせい

どっちだと言われれば勉強したほうがいい。だけど最初はホームページ作りを楽しみながらHTMLを覚えるぐらいで気楽にいこう。その中でHTMLについて興味が湧いてきたらHTML4.01 Strictを宣言できるように勉強してくれ。

初心者

せんせいも勉強中なんですね。

とっくの昔に挫折した。

 

HTML仕様書(英語)
HTML仕様書(日本語訳)