私のプロジェクトでは、いくつかのアップロード フォームがあります。私はスウェーデンに住んでいるので、データを表示するときにエンコーディングが問題にならないように、スウェーデンの特殊文字をそれぞれの HTML コードにエンコードしたいと考えています。コードは次のとおりです。
function format_text($text){
$chars = ['å','ä','ö','Å','Ä','Ö'];
$codes = ['å','ä','ö','Å','Ä','Ö'];
foreach($chars as $key => $value){
$text = str_replace($value,$codes[$key],$text);
}
$text = str_replace("\r","\n",$text);
$text = preg_replace("!\n\n+!", "\n", $text);
$text = htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
$lines = explode("\n", $text);
foreach ($lines as $key => $line){
$lines[$key] = "<p>{$line}</p>";
}
$text = implode("\n", $lines);
return $text;
}
とにかく、この関数を実行した後、常に から空の文字列を取得しますhtmlspecialchars
。これは、置き換えられないスウェーデンの特殊文字が原因であることがわかりました。だから、私の質問はこれです:なぜ特別な文字がそれぞれのHTMLコードに置き換えられないのですか?どうすれば修正できますか? PHP5.4を使用しています。