phpでインクルードをしたら、includeした部分が文字化けしてしまう
と言うお問い合わせをいただいたので一応ここに記しておきます。
その後返答が無いのでどうなったかは分かりませんが、想像するに文字コードセットがあっていないだけだと思われます。
対処法と言うまでも無いのですが、そのような初歩的なことを分からずに便利そうだと言うだけでphpを使用したincludeを多用する方もいるようですのでおさらいと言う意味で。。。(苦笑)
phpのincludeが文字化けするという前に、一度自分のサイト(php include を適用させようとしているサイト)のencodingとcharsetは頭に入っているだろうか?確認していただきたい。
サイトの宣言文とヘッダーに記してある部分である。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="content-style-type" content="text/javascript" />
・
・
・
</head>
上記はutf-8の例。
Movable Type などでサイトやブログを作っている場合、デフォルトではUTF-8になっていると思う。
その他euc-jpや、shift-jisなどのサイトも有るだろう。
encodingとcharsetが違う文字コードということはありえませんので初心者の方は注意!
肝心なのはその部分。
encodingとcharsetを簡単に説明すると、このページはutf-8の文字コードセットを使って書かれているのでそれで見てね!とブラウザに言っているのです。
php includeさせるファイルを作成するとき、多くの場合メモ帳やテキストエディターで作成していると思うが、殆どのテキストエディターはデフォルトではShift-jisで保存されるようになっている。
その事を知らずにphpファイルを作って、shift-jis以外にエンコーディングされたサイトに貼り付けるから文字化けを起こすのです。
encodingとcharsetで、このサイトはutf-8ですよと言っているのに、shift-jisのファイルを読み込ませてしまうからブラウザが混乱を起こしてその部分が文字化けするのです。
簡単に説明すると、全く英語を知らない人が英語で話しかけられても理解できないでしょ?
それと同じ現象がそのページ内で起きているというだけです。
これを改善するには、読み込ませようとするサイトのencodingとcharsetに合わせてphpファイルを作成する必要があると言う簡単なことです。
文字コードセットの変え方がワカラネェヨ!と言う方にサクラエディタでの変更手順を記します。
phpのファイルを作成して保存するときに、左画像のような画面になると思います。
保存画面下方に
文字コードセット(C)
と言う部分があるのでここを押下し、使用したい文字コードセットに変更して保存するだけ。たったこれだけの作業です。
ちなみにWindows標準のメモ帳でも保存時の画面一番下に文字コードと言う部分があるのでそこで変更は可能です。
自分の好きなテキストエディタを使用すれば良いと思います。
