[PHP-users 28699] Re: 文字化け

choice info @ choice-site.com
2006年 3月 10日 (金) 15:18:03 JST


パパぱふぅさま

レスありがとうございます。
なかでです。

----------------------- Original Message -----------------------
On Fri, 10 Mar 2006 14:51:17 +0900
papa pahoo <papa @ pahoo.org> wrote:

> なか様
> 
> パパぱふぅです。JIS→EUCのエンコーディングだけ狂っているのでしょうか?
> 

はい。
1.htmlをjis以外のsjis,euc,utf-8で保存しなおしてテストした
ところ問題はありませんでした。

> <?php
> mb_internal_encoding("EUC-JP");
> $euc0 = "箱田";
> $jis  = mb_convert_encoding($euc0, "JIS", "EUC-JP");
> $euc1 = mb_convert_encoding($jis, "EUC-JP", "JIS");
> 
> print "EUC(0): " . bin2hex($euc0) . "<br />\n";
> print "JIS   : " . bin2hex($jis) . "<br />\n";
> print "EUC(1): " . bin2hex($euc1) . "<br />\n";
> ?>
> 
> EUC(0)とEUC(1)の結果は同じになりますか?

EUC(0): c8a2c5c4
JIS : 1b2442482245441b2842
EUC(1): c8a2c5c4

となり同じ結果になります。
この結果を見るとスクリプト内でのjis->euc,euc->jisには問題が
ないようですね。

で、.htaccessについて見直してみました。

---
php_value default_charset EUC-JP
php_value mbstring.language Japanese
php_flag mbstring.encoding_translation ON
php_value mbstring.internal_encoding EUC-JP
php_value mbstring.http_input pass
php_value mbstring.http_output EUC-JP
php_value mbstring.substitute_character none
---

としていた(最初のメールから少し修正しています)のですが、
http.inputのところを

php_value mbstring.http_input pass

から

php_value mbstring.http_input auto

に変更すると正しく「箱田」と表示されました。

PHPへの入力の際に自動的にEUCに変換させるのと、PHPへの入力の際には
は変換せずにスクリプト内でEUCに変換させるのは同じことだと思って
いたのですが違いがあるのでしょうか。
うーん。なんでだろう?

では、失礼します。

> 
> ==========================
>   パパぱふぅ
>   http://www.pahoo.org/
> ==========================
> 
> 
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3

----



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