程序是ecmall
模板文件是gbk编码的,
php程序是utf-8的,
数据库是gbk。我直接在php程序里的代码中包含中文传输到数据库中,是乱码的,如:
$thed=time();
$conzdy = mysql_connect("localhost","123","123");
mysql_select_db("a0527232048",$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","注册时系统赠送积分");
这句 注册时系统赠送积分 是乱码表的编码 和其他不乱码的表的编码是一样的,都是GBK.这应该如何 解决呢,难道涉及到这种情况,中文都需要从GBK的模板里或调用数据库的中文后再传输吗。谢谢

解决方案 »

  1.   

    没接触过ecmall源码,,,原来就是这样设计的?编码不一致?
    何不将程序编码转为GBK?,,或者将所有程序里的中文,放一个GBK编码的php文件里,引用?
      

  2.   

    "或者将所有程序里的中文,放一个GBK编码的php文件里,引用?"嗯,建议很不错,正在尝试这个办法。谢谢~
      

  3.   

    往数据库里存的时候,都要先转成gbk编码,并且数据库执行set names gbk先.数据库里取出的字符串,都要先转成UTF-8,处理完,输出到模板的时候,都转成GBK
      

  4.   

    第一种:
    模板文件是gbk编码的,
    php程序是utf-8的,//改成gbk的
    数据库是gbk。第二种:
    模板文件是gbk编码的,//改成utf-8的
    php程序是utf-8的,
    数据库是gbk。//改成utf-8的
      

  5.   

    建议你把模板和数据库编码改为utf
    第一:毕竟PHP程序比模板和数据库多了去了,改这两个不费劲,相对来说。
    第二:相比GBK,utf是国际通用的,没有乱码之言。
      

  6.   

    纯UTF8是避免编码麻烦的根本解决方式
      

  7.   

    $this->caifujifendb($f1,$user_id,"10","注册时系统赠送积分");由于你的程序是UTF-8,那这句发送出去的字符编码也是UTF-8。
    数据库接收到的也是UTF-8,GBK里保存UTF-8当然乱码了。你页面和数据库都是GBK,除非你不在PHP程序里写入中文字符,否则你最好也将PHP页面的编码改为GBK。将页面另存为GBK的编码就可以了。
      

  8.   

    模板文件是gbk编码的,
    php程序是utf-8的,
    数据库是gbk。------------------数据库和程序不一样没关系,set names后mysql自动转,
    但是模板和php程序要一样, 否则你必须在程序中转编码
      

  9.   

    mysql_select_db("dbname",$conn);
    mysql_query('set names gbk');
    $count = mysql_query($sql,$conn)
    不知道这样行不.....