所以我想在DB中保存一些特殊字符,例如:á,é,í,ó,ú,ñ,Ñ......所以,如果我使用:
$title = filter_input(INPUT_POST, 'title', FILTER_SANITIZE_STRING);
据我所知,它会绊倒所有标签,只留下字符串字母和数字也是特殊字符...所以如果我的标题是“Algúnosárboles”(少数树),它将按原样存储,如果我使用:
$title = filter_input(INPUT_POST, '$title', FILTER_SANITIZE_STRING);
$title = $con->real_escape_string($title);
它仍然保存数据,如ú和á一样á,我没有问题,我的表格排序是utf8_general_ci,无论如何,这里的问题是当我显示信息时:
<?php
// query to get the informacion
echo $t['title'];
?>
它将显示 &lt; ? &GT;而不是实际的字符,即使html被设置为
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
所以这是一个问题......现在如果我不使用:
$title = filter_input(INPUT_POST, 'title', FILTER_SANITIZE_STRING);
// instead I use
$title = htmlentities($_POST['title'], ENT_QUOTES, 'utf-8');
$title = $con->real_escape_string($title);
“重音”字母保存为á
表示á...如果我回复它会显示实际字符。
我已经看到了一些DB存储字符的位置(á,é,í...),这是显示它的问题......所以。
什么是清理字符串然后escape_string然后保存它的最佳方法?然后你可以在不认为你可能得到一些异化符号的情况下检索它......
我正在尝试使用尽可能少的代码