« ぷろぐら民国 | トップページ | イスラエルなぁ... »

mbstringのありがたみが今ひとつ

 昨日も暑かったですね。
 そんな中、土曜日にもかかわらず、学校で新入生獲得対策のオープンキャンパスの為に登校。
 ダイエットして以降、暑さに強くなった私は「夏やのぉ、浜茶屋の季節やの〜」とむしろ楽しんでおりましたが、他の人はみなさん既に夏バテの顔になっていらっしゃいました。

 7/13の記事のごとく、管理しているOS X sserverをいじったたが為に、いつのまにか別のPHPのサービス(P_BLOG)が文字化けしていることに金曜日に気がつきました。
 まぁ、あんまり利用されていない場所だからそれほど焦らなくて良いとは言うものの、「繋いでみたら使えなかった」なんて言われるのはサーバー管理者として我慢ならないので土曜日3:00頃までかかってフィックス。
 
 原因はphp.iniのいじり過ぎと言うか、買って来た参考書通りにセットしたマルチバイト系文字の設定でした。
 phpでの日本語での文字化けはすぐにmbstringを使ってしまいがち。 しかし実際にはいろいろ逃げ道があって、それまでにインストールしたOsCommerce、P_BLOG、OpenPNE等、全てmbstring = Offで動くのです。
 もちろんmbstring自体は非常に有り難い機能なんですが、うちのばあい、MySQLがEUC-JP、P_blogのエンコーディングはUTF-8という環境がひっかかったようです。
 
 こういうフィックスをした場合、PHPやMySQL絡みの全てのサービスをチェックしないと、いわゆるあちらを立てればこちらがなんとやら状態になることが多いので手間がかかります。
 まぁ、それも終えて土曜の朝、短い睡眠を終えて携帯を見てみると、先日加えた学生のメールアドレス登録システムから自動的に送られて来るメールが文字化けしているのが発覚。
 
 学校に行かねばならんし、時間はかけられぬ、と一瞬焦りましたが、別のプログラムから送信してみるとこちらは文字化け無し。
 これは別の人間が書いたプログラムなので、自分が書いた方に何か抜けがあると判断してサーバーに自宅からリモートで入って覗いてみると...
 
 PHPのmbstringが無くても日本語対応のメールが送信できる"mb_send_mail"という命令に、
 mb_language("Japanese");
 mb_internal_encoding("euc-jp");
 が、私の書いた方に無いのが判明。 これを加えたらあっさりと解決しました。
 
 "mb_send_mail"も購入した参考書で知ったものながら、この二行の補足については記述は無く(mbstring = On が前提だから当たり前だけど)、またまた奥が深いと言うか、基本的にサーバー管理の道はぬかるみであると改めて悟った次第です。
 
 学校の関係者が、「日本語対応さえ無ければPHPもプログラムも楽なんですけどね」と言ったのが身に染みます。 もともとPHPはVer.3で本体がマルチバイト対応(日本語対応)したとはいえ、さらなるmbstringの存在が今ひとつ不鮮明に。
 
 その後、学校から家に帰ったら、昨日文字化けしていたP_BLOGも深い所でまだ文字化けが残っているのが解りましたが、それはバックアップしてあった設定ファイルを書き戻してやることで解決。
 設定ファイルをいじるときはそれまで無事動いていたものをバックアップするのはやはりメンテの王道だなぁ、とこれも既に悟りの領域。
 
 強くなったものよのう>自分

|

« ぷろぐら民国 | トップページ | イスラエルなぁ... »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/108674/10961829

この記事へのトラックバック一覧です: mbstringのありがたみが今ひとつ:

« ぷろぐら民国 | トップページ | イスラエルなぁ... »