<?php
@mysql_connect("localhost", "root", "") or die("连接MySQL数据库失败。");
mysql_select_db("test") or die("打开MySQL数据库失败。");
$sql = "INSERT INTO test (id, uid, regdate, re) VALUES('', '测试', now(), '测试')";
mysql_query($sql);
?>问:中文就是乱码,英文正常,怎么办呀?PHP版本是5.3.8,MySQL版本是5.5.16,各位好汉帮帮忙~~~

解决方案 »

  1.   

    统一编码。插入前执行:mysql_query("set names '你的数据表编码'");
      

  2.   

    数据库 和 程序代码 及 浏览器 的编码要一致。现在都用utf-8。mysql_connect("localhost", "root", "") or die("连接MySQL数据库失败。");
    mysql_select_db("test") or die("打开MySQL数据库失败。");
    #将数据编码转为utf-8(程序编码)
    mysql_query("set names utf-8");
    $sql = "INSERT INTO test (id, uid, regdate, re) VALUES('', '测试', now(), '测试')";
    mysql_query($sql);
      

  3.   

    我的数据表编码:是gbk_chinese_ci
    我把代码改成:
    @mysql_connect("localhost", "root", "") or die("连接MySQL数据库失败。");
    mysql_select_db("test") or die("打开MySQL数据库失败。");
    $sql = "INSERT INTO test (id, uid, regdate, re) VALUES('', '我', now(), '2')";
    mysql_query("set names gbk_chinese_ci");
    mysql_query($sql);还是不行啊
      

  4.   


    另,初期的编程数据库执行代码最好这样写,如果出错会指出错误出处:
    $sql = "INSERT INTO test (id, uid, regdate, re) VALUES('', '测试', now(), '测试')";
    $res = mysql_query($sql);
    if(!$res)
       die("SQL:{$sql}<br>Error:".mysql_error());
    if(mysql_affected_rows() > 0){
       echo "插入成功!";
    }else{
       echo "插入失败!<br>Error:".mysql_error();
    }
      

  5.   

     mysql_query("set names gbk");
    另外,你的文件编码也要改为gbk编码。
      

  6.   

    要先转编码,再执行sql操作!
      

  7.   

    1, php文件保证utf8.
    2,数据库所有character设置为utf8.
    3,系统编码utf8,这样你才能在屏幕上看见utf8编码的不乱码的中文、