[PHP-users 31565] Re: HTMLは化けないのにPHPは化ける

YuGo yu.gotou @ gtec-ni.com
2007年 2月 27日 (火) 14:32:42 JST


こんにちわ。

php.iniをこうしたらどうなります。
mbstring.http_output = SJIS

<?php phpinfo() ?>でも確認してください。

Paul Takenaka wrote:
> 神奈川の竹中です。
> お世話になります。
> 
> 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として保存すると正常に表示されるので、別の問題のような気がしているのですが、どこが悪いのかよく分かりません…
> 
> 何か解決法をご存知の方がいらっしゃいましたら、ご教授頂けると幸いです。
> 「ここの設定はどうなってるの」などのご指摘も頂けると助かります。
> 
> 以上よろしくお願い致します。
> 


PHP-users メーリングリストの案内