我的操作系统是ubuntu,使用apache+mysql+eclipse写php代码,我发现在用户注册的时候,中文插入不到mysql中。我修改过my.cnf文件,写了set names utf8 在header里也加了utf-8,可是任然无法插入中文在那个字段。我写了一个test.php 
如下:
<?php
header("Content-Type:text/html;charset=utf-8");
require_once (dirname(__FILE__).'/con_nect.php');
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<?php
$u_name='admin';
$u_paswd='test';
$u_tname='测试页面';
$query="insert into user_info(user_name,psword,true_name) values('$u_name','$u_paswd','$u_tname')";
$sql=mysql_query($query); 
$query="select * from user_info where user_name='admin'";
$sql=mysql_query($query);
$id=mysql_fetch_array($sql);
print($id['true_name']);
?>
</body>
结果显示乱码。
求各位大大给给建议啊。

解决方案 »

  1.   

    数据库中也要设为utf8,把你的数据表和字段改成utf8。
      

  2.   


    $myconn = mysql_connect("$dbhost","$dbuser","$dbpass") or die("数据库连接失败!请检查!");
    mysql_query("SET NAMES 'UTF8'"); 
    mysql_query("SET CHARACTER SET UTF8");
    mysql_query("SET CHARACTER_SET_RESULTS=UTF8'");...具体操作
      

  3.   

    设置了,表是utf8,整理都是utf8_general_ci
      

  4.   

    整个库也改为utf8_general_ci,还有你的程序代码,用编辑器以无BOM utf-8编码格式打开。
      

  5.   

    谢谢,现在在phpmyadmin里面显示正常,但是打印出来依旧是乱码。
      

  6.   

    查了,eclipse用的就是无bom的utf8了。
      

  7.   

    但是打印出来依旧是乱码你打印的页面是否做了同样的编码统一呢? header(),mysql_query("set names utf8")、程序编码都统一了吗?
      

  8.   

    mysql_query("set names utf8") 已经加在了con_nect.php里了。header("Content-Type:text/html;charset=utf-8");在文件开头了。
    用的是eclipse,工程文件已经设置成utf8了
      

  9.   

    mysql_query("set names utf8") 已经加在了con_nect.php里了。header("Content-Type:text/html;charset=utf-8");在文件开头了。
    用的是eclipse,工程文件已经设置成utf8了
      

  10.   

    可以去掉header()。
    HTML部分的<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">就是设置成UTF8编码。
    con_nect.php里面只要mysql_query("set names utf8")就可以啦,你下面的两句是多余的。
    保证HTML和PHP文件都是UTF8无BOM编码格式保存,用NOTEPAD++转一下,eclipse那个貌似只是设置用什么编码格式查看而已(不太确定,就用NOTEPAD++转吧)
    你试试。