[PHP]設定はコードより強し

絵文字変換で詰まって、1日費やしました。

絵文字変換のライブラリ(HTML_Emoji)は正しく導入した。コードにもバグは見当たらない。なのに動かない…。

原因は、PHPの設定(php.ini)で文字コードの自動変換(mbstring.encoding_translation)がONになっていることでした。自動変換機能が絵文字を正しく認識できず、誤った文字列に変換していたのです。

mbstring.encoding_translationは、set_ini()では書き換えられなかったので、php.iniを編集して、ようやく動くようになりました(user.iniを作っても良かったかも)。

マルチバイト文字列関係の設定(mbstring.*)には気をつけよう、というのが今日の教訓。

コメントを残す