1 参考:ウェブページと文字化け問題

コンピュータ基礎実習(上級) 第 7 週
「コンピュータ基礎実習(上級)」第 7 週 総合演習課題
1
参考:ウェブページと文字化け問題
日本語のウェブページを編集していると、ページを表示した際に文字
化けが起こることがあります。
この章ではなぜ文字化けが起こるのか、どうすれば文字化けを防げる
のか、原因と対策を解説します。
1.1 文字化けはなぜ起こるのか
原因は[文字コード]にあります。
文字化けを起こしたページ例
[文字コード]とは、コンピュータ上で文字や記号を扱うために、文字や
記号ひとつひとつに割り当てられた固有の数字のことです。
ほとんどのブラウザ(Internet Explorer など)では、文字コードを自動認識して表示する機能が付いています。
多くの場合は、ブラウザが各国に対応した言語を認識して正しく表示されるはずです。
しかし、まれに認識に混乱が生じて、正しい文字コードが認識されないと、文字化けが起こります。
1.2 なぜ日本語で自動認識ができないのか
ブラウザが日本語を正しく認識できない原因は、日本語の文字コードの種類が多数存在することです。
日本語では歴史的な経緯により、文字コードの規格が複数生まれてしまったのです。
これがブラウザの自動認識を混乱させる原因です。
1.3 日本語文字コードの種類
ネット上で使用される主な文字コードには、以下の様なものがあります。
名称
読み方
主な特徴
Shift JIS
しふとじす
Windows 系で古くから使われてきた。SJIS ともいう。
JIS
じす
電子メールの本文で使われる。
EUC
いーゆーしー
UNIX 系サーバー上で古くから使われてきた。EUC-JP ともいう。
UTF-8
ゆーてぃーえふえいと
世界標準を目指した新規格。"Unicode Transformation Format-8"
ascii
あすきー
英語の文字コード
現在日本語のウェブページ上で多く使われているのは、Shift JIS と UTF-8 です。
まれに古いウェブプログラム(CGI)上などで、EUC が使われています。
これらの型式が混在するため、ブラウザは日本語文字コードの自動認識に失敗しやすいのです。
1.4 ページ編集時に文字コードを使い分けるには
ページ編集の際に使用する文字コードを使い分けるには、文字コードの扱いに長けたアプリケーションが必要です。
たとえば[サクラエディタ]は文字コードを正しく扱うことが出来ます。
(1) サクラエディタで現在の文字コードを知る
サクラエディタの場合、通常はウィンドウの右下部分に現在の文字コードが表示されます。
(もし表示されない場合は[設定]→[ステータスバーを表示]で表示されます。)
(2) サクラエディタで文字コードを変換する
[ファイル]→[名前をつけて保存](または Ctrl+Shift+S)で保存をする際に、[文字コードセット]欄をクリックすると
任意の文字コードに変換して保存することが出来ます。
-1-
コンピュータ基礎実習(上級) 第 7 週
1.5 文字化けを起こさないための対策 [文字コード宣言]
どの文字コードを使っても、ブラウザの自動認識では正しく認識されず、文字化けを起こす可能性があります。
そこでページを制作する際は、HTML 上で[文字コード宣言]を行うことにより、文字化けを防げます。
日本語以外のページを作成する際も、文字コード宣言を行うことは推奨されています。
文字コード宣言は、以下のように記入します。
(1) Shift-JIS の文字コード宣言
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
(2) UTF-8 の文字コード宣言
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
(3) EUC の文字コード宣言
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
HTML においては上記を<head>~</head>の範囲内に記入します。下記は文字コードが Shift JIS の例です。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>ページのタイトル</title>
</head>
<body>
: (以下略)
使用している文字コードに合わせて正しい宣言をすることにより、ページの文字化けを防ぐことができます。
1.6 文字コード宣言を記入する際の注意点
 文字コード宣言より上の行に日本語を書かない
文字コード宣言より前の日本語が文字化けし、正しく処理されない場合があるからです。
 文字コード宣言と異なる文字コードで記述しない
例えば文字コードを Shift JIS と宣言しているのに、実際には UTF-8 を使用したりすると、確実に文字化けしま
す。ブラウザは、文字コード宣言を信じてしまうからです。
 文字コード宣言は 1 ページに 1 度だけ
1ページ内で文字コードの宣言を2回以上行うと、どちらの記述を採用するかはブラウザ次第となります。混
乱の元となるので、文字コード宣言は、1ページ内に一度だけ記入するよう、注意しましょう。
1.7 他人のページが文字化けを起こしていた場合の対処
もしも文字コード宣言を行っていない誰かのページに、閲覧者としてあなたが遭遇した時、文字化けが発生するこ
とがあります。しかし一介の閲覧者であるあなたは、ページを適切に修正することは出来ません。
この場合は、ブラウザ側(閲覧者側)で適切に文字コードを設定すれば、文字化けを解消できます。
Internet Explorer の場合は、ページ上で[右クリック]→[エンコード]で、適切な文字コードを選んでください。
日本語ページなら[日本語(シフト JIS)]か[Unicode(UTF-8)]のどちらかを選べば、おおむね解消できるはずです。
1.8 どの文字コードを採用すべきか
あなたがウェブページを作成するときに、どの文字コードで書けば良いかは、難しい問題です。
 古い機種や、古い携帯電話向けのページを作成する際は、Shift-JIS が無難です。
 もし日本語以外の文字をページ上で使用する場合や、一部特殊記号を使いたい場合は、UTF-8 を採用する必要が
あります。
 プログラム(CGI)等を使って掲示板などを作る場合は、プログラムで指定されている文字コードをそのまま使用
すべきです。文字コードを不用意に変更すると、プログラムが正常に動作しなくなることが多いです。
最近の傾向としては、文字コードは UTF-8 に統一される傾向にあります。UTF-8 なら全世界の言語を1種類の文字
コードでカバーできるからです。グローバル化によって、ウェブページが複数の言語に対応する必要性も高まって
いますので、今後は UTF-8 が主流になっていくと思われます。参考にしてください。
以上
-2-