[PHP-users 2808] Re: [Q]関数[Strtr()] での文字化け

水迫清仁 php-users@php.gr.jp
Wed, 17 Oct 2001 19:34:21 +0900


こんにちは。水迫です。

 関数[Strtr()]では、マルチバイトでの変換でおかしくなるようですね。
今回の全角空白を半角空白にするのに、

   $trans_str = ereg_replace(" "," ",$input_str);

を利用しました。
また、関数[Strtr()]にて全角文字を半角文字へ変換していたものは、

  $trans = array("A","A", "B","B",・・・);

    $chk_cnt = 0;
    $num     = count($trans);

    // 入力許可文字数を半角空白に変換して、Trimした文字数をチェック[0:OK / それ以外:NG]
    for($i=0; $i<$num; $i++){
        $chk_string = $trans[$i];
        $chk_str = str_replace($chk_string, " " , $input_string);
        $input_string = $chk_str;
    }
    $chk_cnt = strlen(Trim($chk_str));

以上のような、姑息なロジックで代用しました。
これも、大丈夫なのかどうか怪しいですが。


_/_/_/_/_/_/_/_/_/_/_/_/_/
Mizusako
mizusako@southwave.co.jp
_/_/_/_/_/_/_/_/_/_/_/_/_/_