InstantWPでhtmlentitiesを使用すると文字化けする?

PHP

当サイトで公開している「Pz-LinkCard」で、InstantWPで使用した場合に「Pz カード管理画面」で文字化けするという現象が出ました。

色々と調べてみたところ、htmlentities関数のところで文字化けしていました。

文字セットが元々のデフォルトである「ISO-8859-1」として動作しているのだと思われます。

こんな表記のままだと、

[php title=”pz-linkcard-cacheman.php” start-line=”346″]$title = htmlentities($data->title);[/php]

文字化けします。

使用する文字セットを正しく指定してあげると、

[php title=”pz-linkcard-cacheman.php” start-line=”346″]$title = htmlentities($data->title, ENT_QUOTES, ‘UTF-8’);[/php]

正しく表示されました。

ちなみにhtmlentities関数とほとんど同じ動作をするはずのhtmlspecialchars関数を使用した場合には、文字セットなどを指定していなくても、

[php title=”pz-linkcard-cacheman.php” start-line=”346″]$title = htmlspecialchars($data->title);[/php]

正しく表示されるようです。

一応、php.iniで「default_charset = UTF-8」を設定してみたりもしたのですが変わりませんでした。

Apatchの設定も見たのですがよく分かりませんでした。

とりあえず表示させたいだけなので、htmlentities関数からhtmlspecialchars関数に差し替えました。

次期公開バージョンではInstantWPでも文字化けされず表示できる予定です。

では、この辺で。(^-^)o

コメント

タイトルとURLをコピーしました