php 複数の文字コードのhtmlから呼び出し
2013/05/24
HTMLからPHPを呼び出しているんだけど、そのHTMLがページによって文字コードが異なる。
やりたいこと
・PHPファイルに共通項目(メニュー等)を記載
・各HTMLからPHPを呼び出し、共通項目を出力
・各HTMLからPHPを呼び出し、共通項目を出力
問題点
・HTMLファイルによって文字コードが異なるので、文字化けする場合がある
解決案
1.HTMLファイルの文字コードを統一する
2.文字コードの種類ごとにPHPファイルを用意する
3.HTMLファイルで呼び出す際に文字コードを変換する
2.文字コードの種類ごとにPHPファイルを用意する
3.HTMLファイルで呼び出す際に文字コードを変換する
で、「1」はJavascriptも絡んでくるのでやりたくない。
次に「2」は「共通項目」という概念の意味がなくなる。
消去法で「3」にする。
現状は、PHPファイルで「echo xxx;」ってな感じで戻り値なし。
そのため、PHPの呼び出しの引数に文字コードをセットして「echo」する寸前に文字エンコードする。
下記サンプルはPHPファイルが「UTF8」の場合
function xxx($arg="UTF8") {
$result = "HTMLに出力する内容";
if ($arg == "SJIS") {
echo mb_convert_encoding($result, "SJIS", "UTF8");
}
else {
echo $result;
}
}
$result = "HTMLに出力する内容";
if ($arg == "SJIS") {
echo mb_convert_encoding($result, "SJIS", "UTF8");
}
else {
echo $result;
}
}