[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 メーリングリストの案内