数据库设置:程序和模板也是UTF-8的,从程序里语句如下  function caifujifendb($f1,$to2,$cons,$nr)//用户积分变化 
{
$thed=time();
$conzdy = mysql_connect("localhost","a0714183422","111111");
mysql_select_db("a0714183422",$conzdy);
$sql="INSERT INTO caifujifen(f1,to2,cons,nr,thed) VALUES ('$f1','$to2','$cons','$nr','$thed')";
mysql_query($sql,$conzdy); }$this->caifujifendb($f1,$user_id,"10","注册送积分"); //注册送积分
到数据库以后,就成图 4 的模样了, 不乱码的“测试”是直接在phpmyadmin中执行的sql语句,
请各位指教,,,

解决方案 »

  1.   

    php插入数据前先转成utf8, 并且连接数据库后第一件就设置names为utf8
      

  2.   

    把汉字部分用utf-8格式再从写输入一次。
      

  3.   


    mysql_query("SET NAMES 'UTF8'");//试试BTW,这样子写,会不会连数据库太多次?如果一个页面有多个SQL语句执行
      

  4.   

    $nr = iconv('gbk', 'utf-8', $nr);//试一试
      

  5.   

    你试试把代码文件全部重新保存为UTF-8试试。
      

  6.   

    这一句放在你的数据库连接类中,再页面执行数据插入就没有问题了。还有我以前使用PHPmyadmin的现在不用了,推荐楼主使用Navicat 8 lite for Mysql (最新版本有9.0了)小系统开发时,使用很方面便。
      

  7.   

    这段代码是我想在ECMALL中添加一个功能,
    其他ECMALL自带的代码提交到数据库以后中文是不乱码的。
      

  8.   

    那我建议你——直接了解下Ecmall的数据库操作类,应该有的不要自己再连一次数据库了当然你可以先解决了这个问题
      

  9.   

    设置names为utf8如果你的程序页面真的也是utf-8,是不会出现这样的情况。
    设置names为utf8后都还会是乱码,那肯定是你的php程序页的文件编码不是utf-8
      

  10.   

    只要加set names utf8就行了, 不需要自己做转码在你的php程序里如果不加set names, 那是默认为latin1的, 所以才会插入乱码