文字が表示されない

PHPでフォームから日本語の文字列を取得したとき、文字が表示されない事象がある。

使用Ver :PHP5.4以上

原因   :htmlspecialchars関数

詳細   :関数のデフォルト文字エンコーディングがISO-8859-1(Latin-1)からUTF-8に変更された。内部文字エンコーディングEUC-JPまたはShift−JISを用いている場合は、必ずhtmlspecialchars関数の第三引数に['Shift_JIS']を指定する。

$username=htmlspecialchars($_POST['username'], ENT_QUOTES, 'Shift_JIS')

これを怠った場合、worningがでるか、画面遷移先に文字列が表示されない。