日期:2014-05-16  浏览次数:20763 次

mysql中文无法读取。。。

这是mysql数据库的编码方式

这是后台数据的结果,不使用中文的话会正常写入到后台,使用中文的话就不能被写入。(注意看倒数几排数据)
直接向数据库写入中文的话,会显示出来。
PHP代码部分
<?php
if(isset($_POST['B1']))
{
$username=$_POST["username"];
$message=$_POST["message"];
if($username=="")
{
echo "<script language=javascript> alert('请输入您的姓名!');</script>";
if($message=="")
{
echo "<script language=javascirpt> alert('请输入留言内容!');</script>";
}
}
else
{
$addtime=date("y-m-d h:m:s");
$id=mysql_connect("localhost","root","1234");
mysql_select_db("gbook",$id);
$query="insert into message(author,addtime,content,reply) values('$username','$addtime','$message','')";
$result=mysql_query($query,$id);
mysql_close($id);
//echo "result=".$result;
echo "<script language=javascript> alert('留言成功,点击确定查看留言!');location.href='index.php';</script>";
}
}
------解决方案--------------------

$username=iconv('gb2312','utf-8',$_POST["username"]);
$message=iconv('gb2312','utf-8',$_POST["message"]);

------解决方案--------------------
数据库编码是 utf8
直接向数据库写入中文的话,会显示出来。(截图追后一行)
phpmyadmin 会做编码设置,自然没有问题
你的代码没有做编码设置,所以出现问题是很正常的!
当文件编码是 gbk (windows 下的 ANSI)时应有
mysql_query('set names gbk');
当文件编码是 utf-8 时应有
mysql_query('set names utf8');