php htmlentities の文字化けの解決策: 1. "htmlentities($str,ENT_COMPAT,"GB2312")" を使用します; 2. "htmlspecialchars($str)" を出力します。
この記事の動作環境: Windows 7 システム、PHP バージョン 7.1、Dell G3 コンピューター。
php htmlentities コードが文字化けした場合はどうすればよいですか?
htmlphp のentities は中国語をクエリできないという問題を引き起こします
htmlphp のspecialchars は特殊文字を HTML 形式に変換しますが、htmlentities はすべての文字を HTML 文字に変換しますまとめて簡単に説明します別途紹介します。
#htmlエンティティの使用法# $str = "John & 'Adams'";
echo htmlentities($str, ENT_COMPAT);
echo "
";
echo htmlentities($str, ENT_QUOTES);
echo "
";
echo htmlentities($str, ENT_NOQUOTES);
?>
John & 'Adams'
John & 'Adams'
John & 'Adams'
ブラウザ出力:
htmlspecialchars の使用法 #& (および) は & に変換されます。 " (二重引用符) は "
d4953d2dbfab4f3679092ada62799a14 (より大きい) に変換されます。は >$str = "John & 'Adams'"; echo htmlspecialchars($str, ENT_COMPAT); echo " "; echo htmlspecialchars($str, ENT_QUOTES); echo " "; echo htmlspecialchars($str, ENT_NOQUOTES); ?>
#その違い
これら 2 つの関数の機能は、文字を次のように変換することです。 HTML の文字エンコーディング、特に URL とコード文字列です。文字タグがブラウザによって実行されないようにします。中国語を使用する場合に違いはありませんが、htmlentities は中国語入力が文字化けするように中国語の文字をフォーマットします。htmlentities はすべての HTML タグを変換し、htmlspecialchars は特殊記号 & ' " 77953f1368049e30c12f1e8121fc1b6f
# のみをフォーマットします。 ##Effect:$str = '<a href="demo.php?m=index&a=index&name=中文" rel="external nofollow" rel="external nofollow" >测试页面</a>';echo 'htmlentities は GB2312 エンコーディングを指定しています: '.htmlentities($str,ENT_COMPAT,"GB2312").'';echo 'htmlentities はエンコーディングを指定していません: ' .htmlentities($str).'';
$str = '<a href="demo.php?m=index&a=index&name=中文" rel="external nofollow" rel="external nofollow" >测试页面</a>';echo htmlspecialchars($str).'';
推奨学習: "
PHP ビデオ チュートリアル 》
以上がphp htmlentitiesが文字化けした場合の対処法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。