[PHP-users 32697] Re: syslog関数
KOYAMA Tetsuji
koyama @ hoge.org
2007年 10月 4日 (木) 01:18:24 JST
小山です。
間違った使い方がいくつかありますね。
On 10/3/07, Shigeru Matsumoto <hxcsn326 @ ybb.ne.jp> wrote:
> $msg = 'あああああ';
> mb_convert_encoding($msg, "UTF-8", "EUC-JP");
> $str = mb_detect_encoding($msg);
> だと、$strにnullが返ります。
mb_convert_encoding() は引数に渡された文字列を書き換えないので
$msg = 'あああああ';
$msg = mb_convert_encoding($msg, 'UTF-8', 'EUC-JP');
である必要があります。マニュアルをちゃんと読みましょう。
> php.iniのmbstringセクションの設定は以下の通りです。
> [mbstring]
> ;mbstring.language = Japanese
> ;mbstring.internal_encoding = UTF-8
> ;mbstring.http_input = auto
> ;mbstring.http_output = UTF-8
>
> mbstring.encoding_translation = On
>
> ;mbstring.detect_order = auto
> ;mbstring.substitute_character = none;
> ;mbstring.func_overload = 0
>
> mbstring.encoding_translation以外はコメントアウトです。
> 設定に問題があるのでしょうか、よろしくお願いします。
スクリプトの文字コードとして EUC-JP を使うのなら
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
は指定したほうが良いでしょう。
> mbstring.encoding_translation = On
は HTTP の入力を自動で internal_encoding に変換する設定ですので
PHPの文字コードの扱いに対する自分の理解に不安があるならば、
指定しない方が良いと思います。
--
小山哲志@ビート・クラフト
koyama @ beatcraft.com
koyama @ hoge.org
PHP-users メーリングリストの案内