とあるサイト

2003年4月16日
今の会社に入ってから携わった最初の仕事は
WEB のデザイン会社の下請けで
掲示板などのプログラム部分を
作成したりする仕事だった。

当初は perl を使用する方向で進めていたが、
PHP ですることに方針転換した。

NaruTo は仕事をするのが遅いし、
(普通の人の2,3倍の時間がかかる。)
デザインが出来上がるのが遅れたため、
当初予定より時間がかかって納品された。

そして、この 4/1 から一般に公開され、
正式に稼働し始めたようである。

ところが、掲示板の書き込みで
いきなり文字化けが発生。
しかも、化けたり化けなかったりする部分が
あったりし、
また開発環境では再現しなかった。
特に化けるのは掲示板の名前や書き込みの末尾の「☆」。
しかも、みんなやたらと付けたがる。
(女の子が多いからなぁ。。。)

 よくある文字化けのしかたとは異なるし、
化けたり化けなかったりすることから
Apache の proxy あたりか、
PHP の output handler に
なんらかの障害があるのかと思った。
もっとも、実環境でテストが
できなかったので
詳細な調査ができなかった。
開発環境は Windows と Linux だったが、
実環境は Solaris だった。

インターネットを探しても
なかなか類似の障害が見つからず、
関連しそうな情報を見つけられず、
しばらく立ってやっと
PHP user Mailng List で見つけた情報。

Solaris8 で PHP 4.1.11 で fgetcsv で EUC-jp のテキストを読み込んだときに
Field の最初や最後の文字が欠けることがある。Linux等では発生しない。

 ・・・こんな障害だすなよ。。。
上記の現象の報告した人が調べた内容をみると、Solaris の isspace関数の実装が変なんだが、
PHP 側のBUG である。

 この情報を元に、
この関数を回避して作成したら
文字化けはほとんどでなくなった。
(完全な解決ではなく、その後も問題が発生していたが、そこもその後にはでなくなった。)

とりあえず、そのサイトは順調に
稼働しているようである。

=========
2004/03/30
 書き間違っていた部分を少し修正しました。

コメント