[英]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.