[PHP-users 2767] Re: [Q]関数[Strtr()] での文字化け
f.t.
php-users@php.gr.jp
Tue, 16 Oct 2001 20:37:45 +0900
fujiyamaです。
半分便乗しますが,,,
On Tue, 16 Oct 2001 18:27:39 +0900
水迫清仁 <mizusako@southwave.co.jp> wrote:
> PHP 4.0.5
> APACHE 1.3.20
> 現象発生例
> <html>
> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
> <body>
> <?
> $input_str = "法規";
> ↓全角空白
> $trans_str = Strtr($input_str, " "," ");
> $trim_str = Trim($trans_str);
> 以上のようにすると結果として、
> input_str->法規
> trans_str->迷規
> trim_str ->迷規
>
strtr()がマルチバイト文字での動作を保証していないならば、
法→cba1
(全角空白)→a1a1→strtr()では半角スペースの長さに合わせてa1
で、おかしな動作をしそうなことは見当つきますが、
なんで迷(ccc2)なんでしょう??
> 現在は、上記の文字の回避用に
> ↓全角空白
> $trans_str = ereg_replace(" "," ",$input_str);
> 以上のような関数を使用しています。
>
> しかし、これも正しいのどうかもわかりません。
ereg_replace()はcba1を調べるはずなので問題ないんじゃないでしょうか。
いつもご迷惑かけます。
f.t. <fujiyama@pc.mycom.co.jp>