[PHP-users 23653] str_replace で文字化け
MEGUMI Yoshinari
gabin1 @ yahoo.co.jp
2004年 11月 17日 (水) 17:37:25 JST
以前、trimの文字化けの時にお世話になった恵です。
今回、この検証中に見つけた現象をお伺いしたく、メールいた
します。
ブラウザに表示する際に、全角スペース、半角スペースを明示
化するために、以下のようなロジックを組んでいました。
(文字コードはEUCです。)
$A = "[半角スペース][全角スペース]あいうえおか機[全角ス
ペース][全角スペース]";
echo("【元をそのまま表示】<BR>");
print $A;
echo("(改行)<P>");
echo("【スペースを明示化】<BR>");
$C = str_replace("[半角スペース]","△",str_replace("[全
角スペース]","□",$A));
print $C;
echo("(改行)<P>");
としたところ、
そのまま表示の時は
「あいうえおか機 (改行)」
なのですが、、スペースを明示化した場合、
「△△あいうえおか帰□◆(改行)」
となりました。
本来なら、
「△△あいうえおか機□□(改行)」
とならなければならないのに...
これは、str_replaceが悪さをしているのでしょうか?
それともブラウザ?
(全角スペースが(0xA1,0xA1)、「機」が0xB5,0xA1で、表示さ
れている「帰」は0xB5,0xA2,◆は0xA1,0xA2。)
phpのバージョンは4.3.7です。
PHP-users メーリングリストの案内