Unexpected character

昨日は PHP で Unexpected character が出まくりました。負荷が高いと出るのかなぁ。相変わらず原因は良く分からないけど、php.ini に

mbstring.http_input = SJIS

と書いて様子を見ることに。MacSafari からの入力もうまく処理出来ていなかったのでそれの対策としても機能してくれることを期待して。

今のところはちゃんと動いているような感じですが…しかし PHP の日本語設定回りは良く分かりませんなぁ。変なエラーを出すくらいなら、余計なことを一切しない設定にさせてくれよ、と言いたい。UTF-8 とかを使えと、そういうことなんでしょうかね。厳しい時代です…。


「そんなエラー、見た事ねーよ」という方は

<?php
print "エラー再現プログラム";
exit;
?>

とだけ書いたファイルを JIS(ISO-2022-JP) で保存して実行してみましょう。正確にはエラーではなくワーニングですが。

ということで、詳しい方がいらっしゃいましたら解決方法を教えてください…。

追記 2005-03-30

気になることがあったので追記しておきます。そういえば以前ちょっとだけ PHP を使ったシステムを作ったことがあるのをすっかり忘れていました。そちらはこのワーニングが出たのを見たことも無いですし、出たという話も聞いたことありません。画像表示部分に使っているので、出ればすぐ分かるはずなんですが。で、今回使っているシステムとの違いはバージョンとインストールの仕方。今回のはソースからコンパイルした最新版なのですが、以前のシステムは rpm でインストールしたちょいと古いバージョンです。なので、コンパイルオプションとかで防げる問題なんじゃないかって気がしてきました。あ、gcc や libc のバージョンの可能性もあるのか…。こりゃ追試が大変だ。狙って出だせる問題ではないので(今の所再現性無し)、どうしたものかと悩む今日この頃。

追記 2005-03-31

あれから何度か負荷テストも行っているんですが、例のワーニングは全く出ず。やはり入力の自動判別が原因ですか?日本語とか全く関係無い所でも出てた気がするんですが…。1ページ表示させるのに、およそ40回くらいの PHP へのリクエストが発生するページに対して数台の PC から F5 連打(もちろんスーパーリロード)でやってみたのですが、PHP+MySQL ってば速え〜。サクサク処理していきます。デュアル CPU の恩恵でもありますが。ということで解決ですか?解決なのですか?かなり不安なのですが…。