首先,我知道这个问题已经被问了很多次,但是我得到了所有的答案,他们说我必须将我的所有编码都放到UTF-8中,但实际上,他们都使用UTF-8和还是行不通!!这是我的问题:
我在我的网页上有注册,当他名字中带有ñ的用户注册时,它会将其作为ñ存储在数据库中,所以如果我注册名称为“ñaña”,它以“ña”为单位进入数据库
我已将我的数据库表和数据库设置为utf8_general_ci
,我的标题中也包含此代码:
<meta charset="utf-8">
<meta http-equiv="Content-type" content="text/html;charset=utf-8" />
我的PDO连接中的代码:
$connection = new PDO("mysql:charset=utf8;host=$host; dbname=$dbname", $user, $password);
但它仍然作为一个不同的角色存储在数据库中...此外,所有的重音如“à,é,ê,ö......”都正常工作。
我错过了什么?
感谢。
答案 0 :(得分:0)
您可能使用不支持特殊字符的字符编码创建了表。字符;这可以解释你所看到的。您可以尝试these SQL commands来发现数据库/表/列的字符集。
如果您的表格使用utf8以外的其他内容进行编码,则可以使用these other SQL commands将其转换为utf8。但我不确定当前数据会发生什么。
答案 1 :(得分:-4)
您可以创建一个替换值的函数
function sanitize($string)
{
$string = str_replace('ñ', 'ñ', $string);
return $string;
}
希望它适合你