我有一个读取一些数据的表单。以及将此数据发送到数据库的php文件。所有的html文件和php文件都是UTF-8。当表单读取数据时,我会在INSERT语句之前检查 echo
。 echo
会正确显示字词。但是当它被发送到数据库时,它会以破碎的字符到达。
例如:
我发送单词“Būve
”。 echo
就像那样打印出来。但是在数据库中我得到了“BÅ«ve
”。
连接后我也都有这两个。
mysql_query("SET NAMES UTF8");
mysql_query("SET CHARACTER SET utf8");
PHP代码:
echo $_POST[pasutitajs];
$sql = "INSERT into ligumitable (nrpk, ligums, pasutitajs, parkstisanasdatums, summa,) VALUES ('$_POST[nrpk]', '$_POST[ligums]', '$_POST[pasutitajs]', '$_POST[parkstisanasdatums]', '$_POST[summa]')";
数据库中的表也是utf8,如果我通过phpmyadmin输出数据,使用这些字符,一切都很好。这是INSERT打破它。可能有什么不对?
编辑:
这很有趣。事实上,我不是唯一一个致力于代码的人。现在我检查了它,我的好友使用了“$ conn-> query($ sql)”而不是“mysql_query($ sql)”。不知道为什么。我把它改成了常规的mysql_query,它确实有效。谢谢大家,很抱歉打扰你这么简单。
答案 0 :(得分:-1)
您可以这样修理:
$sql = utf8_decode("INSERT into ligumitable (nrpk, ligums, pasutitajs, parkstisanasdatums, summa,) VALUES ('$_POST[nrpk]', '$_POST[ligums]', '$_POST[pasutitajs]', '$_POST[parkstisanasdatums]', '$_POST[summa]')");
答案 1 :(得分:-1)
在将数据插入数据库之前写下这两行:
$str="set names UTF8";
mysql_query($con,$str);
在$ con中写下您的连接代码。