[PHP-users 15099]Re: PHPの文字コードについて
kohara
skohara @ fb3.so-net.ne.jp
2003年 5月 7日 (水) 19:29:43 JST
小原です。
桝形様ご返信ありがとうございます。
> こんにちわ、桝形です。
>
> > PHP4系はソースはEUCでないといけないと聞いたことがあるのですが、
> > Shift_JISは正式にサポート外ということなのでしょうか?
>
> --enable-zend-multibyteがPHP4.3.0から本家に取り込まれたので
> そんな事はないとは思うのですが、マニュアルには書いていない
> ようですね。。。自分が見つけきれないだけ?
>
> http://jp.php.net/manual/ja/ref.mbstring.php
>
> > プログラムに精通している人には問題ないと思いますが、一般のエンドユーザ
> > に利用させるには少しハードルが高くなってしまう気がして懸念してます。
>
> --enable-zend-multibyte
>
> を有効にしてコンパイルして、script_encodingを正しく指定すれば
> 問題ないように思えます。
>
> http://nxweb.dyndns.org:8080/php-i18n-ini.html
> http://www.moon.sphere.ne.jp/nasty/linux/p4_3.html
> http://ns1.php.gr.jp/pipermail/php-users/2002-December/012214.html
--enable-zend-multibyte付きでコンパイルはしていましたので、早速php.ini
に追加して試してみました。
結果は、今まで文字化けしていた個所は直ったのですが、以下のようにPrint
文でハードコーディングしている部分が文字化けするようになってしまいま
した。
例)print ("完了しました");
また、マルチバイト関数mb_send_mailを使ったメール送信テストをしてみま
したが、これは文字化けしてしまいます。internal_encodingがEUC-JPだか
らでしょうか・・・。
全てEUC-JPに変更すると問題ない状態になります。
php.iniでのマルチバイトに関する設定は以下のとおりです。
-------------------------------------------
mbstring.detect_order=auto
mbstring.encoding_translation=Off
mbstring.func_overload=0
mbstring.http_input=auto
mbstring.http_output=SJIS
mbstring.internal_encoding=EUC-JP
mbstring.language=Japanese
mbstring.script_encoding=auto
-------------------------------------------
EUC-JPに統一したほうがよいのでしょうか・・・。
参考
--------------------------------------------------------------------
インストールした時のphp.ini-distにはscript_encodingという項目はなく、
phpinfo()でも項目として出力はされませんでした。ただ、手入力でphp.ini
に「mbstring.script_encoding=auto」を設定すると、phpinfo()にも反映し
ますが、一度反映すると消しても項目は削除されず"no value"として出力さ
れます。
--------------------------------------------------------------------
Shift-JISで問題なく運用できてる方がいらっしゃいましたら設定項目等
を教えていただけませんか?PHP4.3.1(CGI版)を利用しています。
宜しくお願いいたします。
PHP-users メーリングリストの案内