日本語が格納された変数を htmlspecialchars
すると "空" になる
example.php
$example = 'こんにちは';
/* なにも表示されない */
echo htmlspecialchars($example, ENT_QUOTES, 'UTF-8');
原因は文字コード
簡単なコードだったので、メモ帳を使ってつくった
↓
エラーメッセージに日本語を使ってる
↓
メモ帳の文字コードはShift_JIS
↓
文字化け
↓
出力の際のhtmlspecialchars
が化けた値を削除?
↓
空に。
ということらしい。
第3引数にSJIS
を指定するか、ファイルの文字コードをUTF-8
にするとなおった
example.php
htmlspecialchars($example, ENT_QUOTES, 'SJIS');
メモ帳を使ってコーディングする際はご注意を
追記
[PHP]htmlspecialchars()を使うと文字が消える? | PHP Archive
この引数を省略すると、PHP 5.4.0 より前のバージョンでは ISO-8859-1 、PHP 5.4.0 以降では UTF-8 が指定されます。
そして、指定されたエンコーディングとして有効でない文字は切り捨てられます。
とのこと