PHPエラー「Fatal error: Call to undefined function mb_convert_encoding()」の原因と解決方法(Windows用PHP)

PHPで文字列のエンコーディングを変更しようと思ってmb_convert_encoding関数を使用したら、以下のえらーが表示された。

Fatal error: Call to undefined function mb_convert_encoding() in C:\php\nobuneko\test.php on line 18

「mb_convert_encoding」のスペルミスはないということを確認した上で、phpinfoを確認してみると、「mbstring」の項目が一切表示されなかった。

これは、PHPの設定の問題だなぁ、と思ってphp.iniを見てみたら、以下のようになっていた。

;extension=php_mbstring.dll

今、PHPを動作させているOSがWindows XPのマシン(=この記事を書いているマシンと同じ(笑))だったので、mbstringを有効化するには、「;extension=php_mbstring.dll」ではダメだ。

;extension=php_mbstring.dll

extension=php_mbstring.dll

というように「;」を削除して、Apacheを再起動すればOKのはず・・・あれ?改善せず。

まさか、と思って「extension_dir」で指定しているフォルダ(phpinfoで確認可能)を見てみたら、そのフォルダの中にはphp_gd2.dllしかなかった。何でだろう?このXPマシンにPHPをインストールしたのは随分前だったが、その時にどんなインストールしたんだろう?という疑問もあったが、とりあえず、今日のところは、インターネットでphp_mbstring.dllを入手してextension_dirフォルダに入れてApacheを再起動してみると・・・うまくいった!

《関連リンク》
Windows版PHPでphp_mbstring.dllが見つからない場合のエラーの原因と解決方法の1つ
PHPエラー「Call to undefined function mb_language()」の原因と解決方法

前へ

PHPエラー「Warning: preg_match_all() [function.preg-match-all]: Unknown modifier」の原因と解決方法

次へ

PHPエラー「Notice: Array to string conversion」の原因と解決方法