[PHP-users 32696] Re: syslog関数

Shigeru Matsumoto hxcsn326 @ ybb.ne.jp
2007年 10月 3日 (水) 19:18:31 JST


matsumotoです。
小山さん、有難うございます。
レスが遅くなって申し訳ありません。
>
> 手元の Fedora Core 6 で試してみましたが、特に何も変なことはおきずに
> syslog() に渡した文字列が文字コードも含めてそのまま
>  /var/log/messages に書き込まれましたよ?
>
> EUC-JP でファイルを作って
>
> <?php
> openlog(false, LOG_ODELAY, LOG_LOCAL0);
> $msg = 'ERR: 日本語だよん';
> syslog(LOG_ERR, $msg);
> ?>
>
>   
これはダメでした。<?php
> openlog(false, LOG_ODELAY, LOG_LOCAL0);
> $msg = 'ERR: 日本語だよん';
> mb_convert_variables('UTF-8', 'EUC-JP', $msg);
> syslog(LOG_ERR, $msg);
> ?>
>
> だと、ちゃんと UTF-8 で書き込まれます。
>
>   
$msg = 'あああああ';
mb_convert_variables('UTF-8', 'EUC-JP', $msg);
syslog(3, $msg);
で書き込まれました。
一先ず安心。
でも、mb_convert_encodingだとダメです。
$msg = 'あああああ';
mb_convert_encoding($msg, "UTF-8", "EUC-JP");
$str = mb_detect_encoding($msg);
だと、$strにnullが返ります。

> 書かれた /var/log/messages をどんなツールで確認しましたか?
> lv などの多言語ページャで見るとどうなりますか?
>   
XWindow上で、emacs, geditを使用しました。

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以外はコメントアウトです。
設定に問題があるのでしょうか、よろしくお願いします。


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