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

水迫清仁 php-users@php.gr.jp
Tue, 16 Oct 2001 18:27:39 +0900


こんにちは。水迫です。

 現在、
  PHP 4.0.5
  APACHE 1.3.20
 にてページの作成をしているのですが、PHPの文字列関数[Strtr()]で、文字化
けの現象が発生しました。

 現象発生例
<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);

  echo "input_str->" . $input_str . "<br>\n";
  echo "trans_str->" . $trans_str . "<br>\n";
  echo "trim_str ->" . $trim_str  . "<br>\n";
?>
</body>
</html>

以上のようにすると結果として、
input_str->法規
trans_str->迷規
trim_str ->迷規

このように文字が化ける?状態になってしまいます。

submit等で渡ってきた変数$input_str 内に全角空白があると[Trim()]が効かな
いので、[Strtr()]にて全角空白を半角空白にしているというわけです。
すべての文字がこうなるわけでは無いですが、原因が分かりません。

現在は、上記の文字の回避用に
                ↓全角空白
  $trans_str = ereg_replace(" "," ",$input_str);
以上のような関数を使用しています。

しかし、これも正しいのどうかもわかりません。

どなたか、上記のエラーについてご存じの方がいましたら、教えていただけない
でしょうか。また、有効策をご存じの方がいらっしゃいましたら、そちらも教え
ていただけないでしょうか。よろしくお願いいたします。

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