mbstring周りの設定

| | コメント(0) | トラックバック(0)

世の中はutfへ進んでいるようですが、現時点ではEUC-JPに決め打ちされているWebアプリもたくさんあって、環境づくりに悩まされていました。

たとえばXOOPSとOPEN PNEを同一のWebサーバで運用する場合、PHPのmbstring関係の設定をどうしたもんかと。
XOOPSは最近、UTF-8化に向かっているようですが、モジュールレベルでは作者の対応がなければ難しい部分もあるようです。
一方のOPEN PNEはUTF-8前提。

少し前ならEUC-JP固定であればほとんどのWebアプリを動かすことができましたが、ここ数年で状況が変わってきてしまいました。

最近ではUTF-8のものをEUC-JPに変換(またはその逆)したりして、とりあえずの対応をしていましたが、やっと自分なりの対応策がまとまったのでメモ。

「今頃そんなことやってんのか」とかいうツッコミはスルー。
もっと簡単でいい方法があれば教えていただきたいです。

1)とりあえず、php.iniでの設定はほとんど無効にする。
 無効というか、「PHP、お前は触るな」という感じ。

mbstring.language = Japanese
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off
mbstring.detect_order = auto
mbstring.func_overload = 0
mbstring.script_encoding = auto
これ以外の「mbstring.internal_encoding」とか「mbstring.substitute_character」とかはコメントアウト。

2)apacheのmod_rewriteをオンにして、各アプリケーションのディレクトリで.htaccessを設定
たとえば

#AddDefaultCharset UTF-8
#php_value default_charset UTF-8
#php_value mbstring.language neutral
php_value mbstring.internal_encoding UTF-8
#php_value mbstring.http_input auto
#php_flag mbstring.encoding_translation Off
#php_value mbstring.detect_order UTF-8
#php_value mbstring.script_encoding UTF-8
#php_value output_handler none
とかしておくとUTF-8のアプリは動くようになりました。細かくチェックはしてないけど。

httpd.confに直接書く、でもいいんですが、いちいちシステムにログインするのが面倒なので・・・

mbstring.png

 

トラックバック(0)

このブログ記事を参照しているブログ一覧: mbstring周りの設定

このブログ記事に対するトラックバックURL: http://mtos.snufkins.net/mt-tb.cgi/976

コメントする

あわせて読みたいブログパーツ

このブログ記事について

このページは、snufkinが2007年10月 4日 16:16に書いたブログ記事です。

ひとつ前のブログ記事は「au one 開始」です。

次のブログ記事は「[FreeBSD] ProFTPDのインストール・設定」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。