タグ

htmlspecialcharsに関するpapiroのブックマーク (2)

  • 【php5.4】htmlspecialchars関数の動きが変わった at softelメモ

    問題 phpを5.4にした。 EUC-JPのサイトで、文字が表示されない。htmlspecialchars()すると、文字が表示されない。 <?php //ソースはEUC-JP $a = 'テスト'; echo htmlspecialchars($a); 答え php5.4からhtmlspecialcharsの動作が変わった。 http://php.net/manual/ja/function.htmlspecialchars.php (第3引数)encoding 変換に使用されるエンコーディングを指定します。 省略した場合のデフォルト値は、PHP 5.4.0 より前のバージョンでは ISO-8859-1、そして PHP 5.4.0 以降では UTF-8 となります。 EUC-JPなどUTF-8以外のサイトでは、htmlspecialchars()するとき、文字コードも指定しなくてはならな

    【php5.4】htmlspecialchars関数の動きが変わった at softelメモ
  • PHP5.4のhtmlspecialcharsに非互換問題

    第3引数を指定していない場合の影響前述のように、htmlspecialchars関数の第3引数を指定していない場合、PHP5.3までは、文字エンコーディングがISO-8859-1が指定されたとみなされます。この場合、入力内容にかかわらず不正な文字エンコーディングと判定されることはありません。したがって、文字エンコーディングのチェックが働かない代わりに、エラーになることもありませんでした。 これに対して、PHP5.4の仕様により文字エンコーディングがUTF-8とみなされた場合に、Shift_JISやEUC-JPの2バイト文字が入力されると、高い確率で「UTF-8として不正」というエラーになり、htmlspecialchars関数の出力は空になります。つまり、プログラムが正常に動作しません。 htmlspecialchars関数の第3引数を指定しておらず、内部文字エンコーディングがShift_

  • 1