[英]PHP htmlentities or htmlspecialchars = acentuation error
我在CONFIG.PHP上具有以下功能:
foreach($_POST as $key => $value){
if (!is_array($value)){
$_POST[$key] = htmlspecialchars($value);
}
}
foreach($_GET as $key => $value){
if (!is_array($value)){
$_GET[$key] = htmlentities($value);
}
}
防止在所有POST和GET中注入html。 它從發布,獲取,htmlentities獲取價值,並記錄在mysql中。
我的MySQL整理:utf8mb4_general_ci
問題是,沒有htmlentities,acentuation很好,我可以在mysql上閱讀所有內容。 但是隨着htmlentities,帶有沉迷感的單詞變得像這樣瘋狂:
não
é
我做錯了什么?
htmlspecialchars和htmlentities可以與其代碼版本交換特殊字符。 html仍會在自動翻譯代碼時顯示該符號。 但是您可以刪除符號本身。 因此,您的結果就是您應該得到的。
如果您不想使用symbosl的代碼版本,例如,如果以后要搜索它們,則應轉義所有變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.