[PHP-users 31563] HTMLは化けないのにPHPは化ける
Paul Takenaka
a.p.takenaka @ gmail.com
2007年 2月 27日 (火) 14:12:32 JST
神奈川の竹中です。
お世話になります。
PHPで日本語を書こうとすると文字化けしてしまい、困っています。
確認している環境は
Windows XP Home Edition SP2 + Apache HTTP Server 2.0.59 + PHP 4.4.5
です。
まず、下記のコードを "test.php" としてシフトJISで保存し、ブラウザ(Mozilla Firefox
2.0.0.2)でアクセスしたところ、「テスト」の文字が「?e?X?g」と化けてしまいました。
-----[ start of code ]-----
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<body>
<p>テスト</p>
</body>
</html>
-----[ end of code ]-----
上記とまったく同じコードを "test.html" として保存し、同じようにアクセスすると、問題なく表示されました。
また、test.php をUTF-8で保存し(コード中のcharsetも charset=UTF-8
に変更)、同じようにアクセスすると、「テスト」は「???鴻??」と化けてしまいました。
ブラウザ側の文字エンコーディングを確認すると、なぜか「日本語 (Shift_JIS)」になっていたので、これを「Unicode
(UTF-8)」に変更したのですが、文字化けは直ることなく、「???��??」と表示されてしまっています。
また、「テスト」の部分を「<?php echo 'テスト'; ?>」としても同じ結果となりました。
いろいろ調べていたところ、あちこちで「Apacheで日本語が文字化けする場合は httpd.conf のAddDefaultCharset
ISO-8859-1 という記述をコメントアウトする」とあったのですが、そのような記述は見つかりませんでした。
そもそも、HTMLとして保存すると正常に表示されるので、別の問題のような気がしているのですが、どこが悪いのかよく分かりません…
何か解決法をご存知の方がいらっしゃいましたら、ご教授頂けると幸いです。
「ここの設定はどうなってるの」などのご指摘も頂けると助かります。
以上よろしくお願い致します。
--
tak / Akikazu Paul Takenaka
a.p.takenaka @ gmail.com
PHP-users メーリングリストの案内