htmlspecialcharsのInvalid multibyte sequenceエラーの問題
ある環境だとエラーになり、そうでない環境ではすんなり通るなぞのコードに頭を抱えている
PHPのバージョンや設定はほとんど同じなので、そこら辺が影響するとは今ひとつ思えないし・・・
環境依存のバグかのぉ
原因がつかめなくてお手上げ状態・・・た〜す〜け〜て〜
んで、コードはこれ(コード自体はUTF-8で記述)
[hoge@hoge ~]$ cat test.php <?php $str = 'メガネ'; printf("%s\n",var_export($str, true)); $hoge = htmlspecialchars($str, ENT_QUOTES, 'SJIS'); printf("%s\n",var_export($hoge, true)); ?>
実行結果がこれ
○成功時
[hoge@hoge ~]$ php test.php 'メガネ' ''
○失敗時
[hoge@hoge ~]$ php test.php 'メガネ' PHP Warning: htmlspecialchars(): Invalid multibyte sequence in argument in /home/hoge/test.php on line 7 PHP Stack trace: PHP 1. {main}() /home/hoge/test.php:0 PHP 2. htmlspecialchars() /home/hoge/test.php:7 ''
うーん、分けわかめ
@つけてエラー抑制すればエラーは出なくなるけどそれはいろいろと気持ち悪いしな〜〜