[PHP-users 32698] Re: syslog関数

Shigeru Matsumoto hxcsn326 @ ybb.ne.jp
2007年 10月 4日 (木) 22:31:49 JST


matsumotoです。
> mb_convert_encoding() は引数に渡された文字列を書き換えないので
>
> $msg = 'あああああ';
> $msg = mb_convert_encoding($msg, 'UTF-8', 'EUC-JP');
>
> である必要があります。マニュアルをちゃんと読みましょう。
>
>   
すみません。記述ミスでした。
実際のソースは、
syslog(3, mb_convert_encoding($msg, 'UTF-8', 'EUC-JP'));
のように使用しています。
それから、
$msg = mb_convert_encoding($msg, 'UTF-8', 'EUC-JP'); ではなく、
$msg = mb_convert_encoding($msg, 'UTF-8', 'auto');
でした。
$msg = mb_convert_encoding($msg, 'UTF-8', 'EUC-JP'); では正常に書き込ま
れました。
マニュアルに
「"auto" は、"ASCII,JIS,UTF-8,EUC-JP,SJIS" に展開される 」とありますが、
"auto"が効かないのは、php.iniの設定でしょうか?
mb_convert_variables('UTF-8', 'auto', $msg); もダメでした。
> スクリプトの文字コードとして EUC-JP を使うのなら
>
> mbstring.language = Japanese
> mbstring.internal_encoding = EUC-JP
>
> は指定したほうが良いでしょう。
>
>   
>> mbstring.encoding_translation = On
>>     
>
> は HTTP の入力を自動で internal_encoding に変換する設定ですので
> PHPの文字コードの扱いに対する自分の理解に不安があるならば、
> 指定しない方が良いと思います。
>   
有難うございます。良く判りました。


PHP-users メーリングリストの案内