今回は文字化けの対策について調べていこうと思います。
たまにwebサイトなどで、日本語の表示がグチャグチャになっていて全く読めない意味不明な文字になっているのを何度か見たことがあるような気がします。どうやらそれを文字化けと言うようです。
そのような文字化けを防ぐための対策があるようなので設定していきたいと思います。
Contents
UTF-8とは
「UTF-8とはUnicode(ユニコード)という文字コードの一種」です。
はい、意味不明です。ユニコード??文字コード??そもそも、そこからわかりません。
いろいろ調べた結果の私なりの簡単な解釈
- 普段私達が画面上で見ている「あ」「い」などの文字は、実はプログラム上では「82A0」「82A2」などの番号(符号)で管理されていて、この符号はひらがな、カタカナ、漢字の一つ一つ全てに振られている
- 符号には何種類かあり、例えばShift_JISという文字コードでは「あ」に振られている符号は「82A0」ですが、EUC-JPという文字コードでは「あ」に振られている符号は「A4A2」というように全く違う符号が振られている
- 何種類も文字コードが存在する中、最高の文字コード「Unicode(ユニコード)」というものがある
- ユニコードの一つにUTF-8という文字コードがあり、文字化け対策としてはこの文字コードを使うことがとても有効
まとめると
プログラミングを行う前にしておかなければならない文字化け対策としては、文字コードと言われるものの種類を「UTF-8」に設定する必要がある。・・・ということでしょうか??
とりあえず素人目線での解釈はこんな程度でお許し下さい(汗)
サーバーをUTF-8化する方法
UTF-8化はサーバー(今回はXAMPPを使用しています)とテキストエディタのTeraPadの両方に設定する必要があるようなので、まずはサーバーから設定していきたいと思います。
Webサイトのアップロード先となる「htdocs」というフォルダの中に任意の名前のフォルダを作る
XAMPPフォルダの中には、Webサイトのアップロード先となる「htdocs」という特別なフォルダが存在するらしいです。その中に任意の名前をつけたフォルダを作っておきます。アップロードについては後日もう少し詳しい記事を書いていきたいと思います。
まず、Cドライブ(ローカルディスクC)の中にあるxamppフォルダの中のhtdocsというフォルダの中に任意の名前をつけたフォルダ(今回私はwebnoteというフォルダを作りました)を作っておくそうです。
どうやら、ここで作成したフォルダを今後プログラミングの練習では使っていくことになりそうです。どういう使い方をしていくのかはよくわかりませんが、とりあえず今は深い意味は考えずに先に進んでいきたいと思います。
フォルダ内で使用される文字コードをUTF-8に設定する
まずはTeraPadを起動し、UTF-8化するために必要な文を打っていくようです。しかし、ここでもつまずきました。
TeraPadを起動してみると「EOF」という文字が出ています・・・この文字はここでは必要ないみたいだったので消そうと思ったのですが・・・消えない(泣)DeleteキーやBackspaceキーでは消えないことが判明しました・・・。
文を書き込んでいく前に、このEOFを消す作業を先にしたいと思います。
まずTeraPadの画面上の「表示」をクリックし、その中の「オプション」をクリックします。
すると上の画面が出るので、上のタブの「表示」を見てみると「マーク」という項目の「EOF(E)」にチェックが入っていたのでそのチェックを外して「ok」を押すと、TeraPad上にずっと出ていたEOFという文字が無事消えました(ホッ)。
では、気を取り直して、UTF-8化するための文をTeraPadに打ち込んでいく作業に戻りたいと思います。
[text]
php_value output_buffering OFF
php_value default_charset UTF-8
php_value mbstring.detect_order SJIS,EUC-JP,JIS,UTF-8,ASCII
php_value mbstring.http_input pass
php_value mbstring.http_output pass
php_value mbstring.internal_encoding UTF-8
php_value mbstring.substitute_character none
php_value mbstring.encoding_translation OFF
[/text]
TeraPadに上記のような文を打ち込んでいきます・・・面倒くさいですが。
打つときは半角文字なので注意が必要みたいですね。
文字を打ち終わったらTeraPadの「ファイル(F)」をクリックしその中の「名前を付けて保存(A)」をクリックします。
保存する場所は、先ほどhtdocsの中に作成した任意の名前のフォルダ(webnote)の中に保存します。
Cドライブの中のxamppフォルダの中のhtdocsの中に作ったフォルダです。
ファイル名は「.htaccess」という名前にするそうです。この「.htaccess」については後日もう少し詳しく記事にしてみようと思います。
ファイルの種類は「すべてのファイル(.)」を選択して「保存」をクリックします。
これでサーバーをUTF-8化する作業は終わりのようなので、次はテキストエディタTeraPadをUTF-8化する作業に移りたいと思います。
TeraPadをUTF-8化する方法
まずTeraPad上の「表示(V)」をクリックしその中の「オプション」をクリックします。
上の画面になると思いますので、「文字コード」というタブを選択してその中の「文字コードの設定」を上のように変更するそうです。
まず、「文字/改行コードを自動認識する」と「再読込は現在の文字コードで行う」の2つともの項目にチェックを入れます。
「初期文字コード」「保存文字コード」の項目は2つとも「UTF-8N」を選択します。
「初期改行コード」「保存改行コード」の項目は2つとも「LF」を選択します。
これで「ok」をクリックして、TeraPadのUTF-8化は完了のようです。
今回のノートまとめ
- 文字コードには種類があり、その中でも文字化け対策として有効な文字コードにUTF-8というものがある
- プログラミングを行う前に、サーバー、テキストエディタの両方をUTF-8に設定する必要がある
- XAMPPの中にはもともと「htdocs」というフォルダが存在し、ここがwebサイトのアップロード先になる
この対策を知らずにいきなり文字化けが起こってしまったら、初心者の私は間違いなくパニックになっていたでしょう・・・。
やはり、どんなことをするにも基礎的な部分は大切なんですね~。