Home > php > mb_convert_encodingを使うのに苦労した話

  • 2008.07.01 Tue 12:59

php : mb_convert_encodingを使うのに苦労した話

仕事でサイトのお問い合わせフォームをつくることになったので、ネットからフリーのPHPスクリプトを落とし、カスタマイズして設置しようとしたのですが、こんなエラーがでてしまいました。

Fatal error: Call to undefined function: mb_convert_encoding()

どうやらmb_convert_encoding()関数が引っ掛かっているらしい。とりあえずの対処として、mb_convert_encoding()の部分を一度削除してプログラムが動くかどうか試してみたところ、フォームからメールは一応届いたので、この関数がネックになっていることは間違いなさそうです。しかし、届いたメールはメールソフト側で表示エンコードを変更しなければ文字化けしてしまっていますので、やはりこの関数は使いたい・・・。
エラー文をみると、これはPHPにマルチバイト文字列を扱う関数「mbstring」が設定されていないためだと思われます。今回利用しているサーバーは先日契約したばかりの専用ホスティングサーバーだったため、PHPはインストールだけして初期設定のままだったことに原因がありました。

そこで、php.iniをチェックすると、案の定mbstringに該当する行(extension=php_mbstring.dll)がコメントアウトされています。よし、ではここを修正して・・・と思ったのですが、FTPにrootでログインできないのでphp.iniをいじる権限がありませんでした。ならば.htaccessを利用して!と思い、調べてあれこれ試したのですが、書き方が悪かったのか、どれもうまく動きませんでした。(2008/11/09追記:このころはTelnetでログインできるということすら知らなかった・・・。いまだにコマンドラインでのコンフィグは緊張してしまいますw)
結局、サーバーにPHPを再インストールすることにしました。今回のサーバーはPHPのインストールにvinstallコマンドが使えるものでしたので、インストール中にオプションとしてMultibyteモジュールにチェックをいれ、再インストール。

すると難なく使えるようになったのでした。自分でPHPとか入れてしまうと、この手のエラーには結構頻繁に出くわすのかもしれませんね。いい勉強になりました。

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://haruka.sugawa.in/note/php/38/trackback
Listed below are links to weblogs that reference
mb_convert_encodingを使うのに苦労した話 from haruka.sugawa

Home > php > mb_convert_encodingを使うのに苦労した話

Return to page top