次のコードは空の文字列を出力します。原因は$ textの「ó」ですが、なぜですか?それでは、utf-8はどの文字をエンコードしますか?
Iso-8859-1を使用すると問題は解決しますが、utf-8を使用する必要があるので、何が間違っているのでしょうか。
<!doctype html>
<head>
<meta charset="utf-8">
</head>
<body>
<?
$text = 'Hola ó Hola';
$text = htmlentities($text,ENT_QUOTES,'utf-8');
echo $text;
?>
</body>
</html>
文字列が含まれている場合は、ソースファイルをUTf-8として保存してください。それ以外の場合は、文字列を提供しているものがUTF-8として提供されていることを確認してください。
同様の問題が発生し、フラグENT_SUBSTITUTEを使用して空の文字列を防止しました。それでもエンコードせず、ファイルがUTF-8であることに依存できなかったため、文字列のみでエンコードを変換しました。
$text = htmlentities(mb_convert_encoding($text, 'UTF-8', 'ASCII'), ENT_SUBSTITUTE, "UTF-8");
New > Save As..
をクリックして、ファイルの名前を入力し(しばらく空白)、タイプとしてPHP Hypertext ...
を選択します。