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
''

うーん、分けわかめ

@つけてエラー抑制すればエラーは出なくなるけどそれはいろいろと気持ち悪いしな〜〜