错误:Incorrect string value: '\xBB\xF4' for column 'name' at row 1mysql用的时utf8,数据库用的时utf8-general-ci,数据表也是用的tf8-general-ci,但是原来能插入汉字,不知道我改了什么地方了,汉字在表单中不能输入了,错误就是上边那一行,但是原来我输入的汉字在phpmyadmin中显示的时乱码,但是把表用网页显示出来是汉字。求高手教育。代码我发到下面
conn.php
<?php
$db_host='localhost';
$db_user='root';
$db_passw='0000';
$db_name='huowenshen';
$conn=mysql_connect($db_host,$db_user,$db_passw) or die('连接数据库失败');
mysql_select_db($db_name,$conn) or die('数据库选定失败');
//mysql_query("set names gb2312");
---------------------------------
input.php
<html>
<head>
<title>增加联系人</title>
<meat http-equiv="Content" content="text/html charset=utf-8">
<head>
<form id="form1" name="form1" method="post" action="post.php">
<p>姓名:<input name="name" type="text" id="name" /></p>
<p>
性别:<input type="radio" name="sex" value="0" />女士
<input type="radio" name="sex" value="1" />先生
</p>
<p>手机:<input name="mobi" type="text" id="mobi" /></p>
<p>邮箱:<input name="email" type="text" id="email" /></p>
<p>地址:<input name="addr" type="text" id="addr" /></p>
<p>
<input type="submit" name="Submit" value="添加" />
<input type="reset" name="Submit2" value="重写" />
</p>
</form>
<html>
-------------------------
post.php
<html>
<head>
<title>添加数据</title>
<meta http-equiv="Content" content="text/html charset=gb2312">
</head>
<?php$name=$_POST['name'];
$sex=$_POST['sex'];
$mobi=$_POST['mobi'];
$email=$_POST['email'];
$addr=$_POST['addr'];echo $name;
echo $sex;
echo $mobi;
echo $email;
echo $addr;
echo '<hr />';require('conn.php');
/*if(!$conn)
{
echo 'conn no come here';
}
else 
{
echo 'OK';
echo $conn;
}
*/
$sql="insert into addr_list(name,sex,mobi,email,addr) values('$name','$sex','$mobi','$email','$addr')";
//echo 'SQLText:'.$sql;
echo '<br />';
$result=mysql_query($sql,$conn);
echo mysql_error();
echo '<br />';
if(!$result)
{
echo 'fail';
echo "<a href='input.php'>重新输入</a>";
}
else
{
echo 'OK';
echo "<a href='input.php'>继续输入</a>";
}
?>
</html>

解决方案 »

  1.   

    既然mysql 用的是utf-8,那么最好页面:<meta http-equiv="Content" content="text/html charset=utf-8"><?php header("Content-type: text/html; charset=utf-8"); ?>mysql_query("set names utf-8");
      

  2.   

    你三个文件最好都用UTF-8的编码,如果编码混用是肯定会乱码的,如果是用DW编辑的话:CTRL+J,选择编码为UTF-8,保存就可以了
      

  3.   

    应该学会分析问题.如果输入字母可以,应该考虑是编码的问题,编码要统一起来.UTF8,或GBK,或GB2312
      

  4.   

    echo "\xBB\xF4"; //霍显然这是 gbk 编码而不是 utf-8 编码的