本帖最后由 freeyxm 于 2012-05-10 00:17:24 编辑

解决方案 »

  1.   

    在网页上吗? 先改变一下页面编码(浏览器菜单上)看看到底是什么编码及内容, utf8或gbk, 
    然后如果connect_errno=2002就自己转一下编码...
    也可以用自己的message代替该信息....
      

  2.   


    文件我都用的是utf8编码,mysql、PHP的默认编码都用的是utf8,
    数据库也用的是utf8(这里数据库服务还没有启动,应该和数据库没啥关系)
      

  3.   

    echo base64_encode($mysqli->connect_errno);贴出来看看是什么东西
      

  4.   


            $mysqli = new mysqli("localhost","username","password","db",3306);
    if($mysqli->connect_errno){
    echo $mysqli->connect_error;
    }
    大家可以直接用上边的代码试试,当数据库没启动的时候就是乱码,启动后就是正常的英文错误信息……请注意下帖子中的环境
      

  5.   

    哦 不好意思我搞错了 
    是 echo base64_encode($mysqli->connect_error);connect_errno 是错误号,已经知道是 2002 了
      

  6.   

    首先是你PHP的网页头文的显示的编码然后记得set name UTF-8 或者GBK 或者GB2312 但是要和网页头里的一样
      

  7.   


    这个方法试过行不通,因为是在创建mysqli对象的时候出的错,对象没有成功创建,之后没法调用mysqli对象的相关方法……
      

  8.   

    2002 就是 Can't connect to local MySQL server through socket '/tmp/mysql.sock'
    所以你完全可以不细究.应该和你的mysql client api的版本及设置有关实在想知道可以照楼上唠叨说的把信息贴上来
      

  9.   

    用记事本打开文件 然后点:文件-另存为-编码选择UTF-8 最后就OK啦
      

  10.   

    又见乱码问题……你确认所有的文件格式都是UTF-8,页面字符集也是UTF-8么?
      

  11.   

    Build Date Dec 9 2010 21:35:01
    Compiler MSVC6 (Visual C++ 6.0)
    Architecture x86
    Configure Command cscript /nologo configure.js "--enable-snapshot-build" "--disable-isapi" "--enable-debug-pack" "--disable-isapi" "--without-mssql" "--without-pdo-mssql" "--without-pi3web" "--with-pdo-oci=D:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8=D:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8-11g=D:\php-sdk\oracle\instantclient11\sdk,shared" "--enable-object-out-dir=../obj/" "--enable-com-dotnet" "--with-mcrypt=static"
    Server API Apache 2.0 Handler
    Virtual Directory Support enabled
    Configuration File (php.ini) Path C:\WINDOWS
    Loaded Configuration File D:\php\php.ini
    Scan this dir for additional .ini files (none)
    Additional .ini files parsed (none)
    PHP API 20090626
    PHP Extension 20090626
    Zend Extension 220090626
    Zend Extension Build API220090626,TS,VC6
    PHP Extension Build API20090626,TS,VC6
    Debug Build no
    Thread Safety enabled
    Zend Memory Manager enabled
    Zend Multibyte Support disabled
    IPv6 Support enabled
    Registered PHP Streams php, file, glob, data, http, ftp, zip, compress.zlib, phar
    Registered Stream Socket Transports tcp, udp
    Registered Stream Filters convert.iconv.*, mcrypt.*, mdecrypt.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, zlib.*
      

  12.   

    还在纠结?贴出 echo base64_encode($mysqli->connect_error); 的结果
      

  13.   


    08nT2sS/seq7+sb3u/28q77cvvijrM7et6jBrL3ToaMNCg==
      

  14.   


    上次没看到把
    echo base64_encode($mysqli->connect_errno); 
    修改为
    echo base64_encode($mysqli->connect_error); 
    后重新运行……非常抱歉……
      

  15.   


    文件已经保存的是utf8格式。乱码不是直接写在文件里的中文,是运行连接mysqli,connect_error返回的。
      

  16.   

    gbk 编码的:由于目标机器积极拒绝,无法连接。mysql 客户端会根据你所使用的操作系统的默认语言产生本地化的错误信息
      

  17.   


    echo base64_encode($mysqli->connect_error); 的结果:08nT2sS/seq7+sb3u/28q77cvvijrM7et6jBrL3ToaMNCg==
      

  18.   


    非常感谢!这个能通过更改什么配置把它的默认编码改为utf8吗?
      

  19.   


    补充说明:
    mysql的配置文件my.ini中,已经设置了默认编码utf8:[mysql]
    default-character-set=utf8