PHP乱码的问题【注:不是连接数据库乱码】 本帖最后由 freeyxm 于 2012-05-10 00:17:24 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在网页上吗? 先改变一下页面编码(浏览器菜单上)看看到底是什么编码及内容, utf8或gbk, 然后如果connect_errno=2002就自己转一下编码...也可以用自己的message代替该信息.... 文件我都用的是utf8编码,mysql、PHP的默认编码都用的是utf8,数据库也用的是utf8(这里数据库服务还没有启动,应该和数据库没啥关系) echo base64_encode($mysqli->connect_errno);贴出来看看是什么东西 $mysqli = new mysqli("localhost","username","password","db",3306); if($mysqli->connect_errno){ echo $mysqli->connect_error; }大家可以直接用上边的代码试试,当数据库没启动的时候就是乱码,启动后就是正常的英文错误信息……请注意下帖子中的环境 哦 不好意思我搞错了 是 echo base64_encode($mysqli->connect_error);connect_errno 是错误号,已经知道是 2002 了 首先是你PHP的网页头文的显示的编码然后记得set name UTF-8 或者GBK 或者GB2312 但是要和网页头里的一样 这个方法试过行不通,因为是在创建mysqli对象的时候出的错,对象没有成功创建,之后没法调用mysqli对象的相关方法…… 2002 就是 Can't connect to local MySQL server through socket '/tmp/mysql.sock'所以你完全可以不细究.应该和你的mysql client api的版本及设置有关实在想知道可以照楼上唠叨说的把信息贴上来 用记事本打开文件 然后点:文件-另存为-编码选择UTF-8 最后就OK啦 又见乱码问题……你确认所有的文件格式都是UTF-8,页面字符集也是UTF-8么? Build Date Dec 9 2010 21:35:01Compiler MSVC6 (Visual C++ 6.0)Architecture x86Configure 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 HandlerVirtual Directory Support enabledConfiguration File (php.ini) Path C:\WINDOWSLoaded Configuration File D:\php\php.iniScan this dir for additional .ini files (none)Additional .ini files parsed (none)PHP API 20090626PHP Extension 20090626Zend Extension 220090626Zend Extension Build API220090626,TS,VC6PHP Extension Build API20090626,TS,VC6Debug Build noThread Safety enabledZend Memory Manager enabledZend Multibyte Support disabledIPv6 Support enabledRegistered PHP Streams php, file, glob, data, http, ftp, zip, compress.zlib, pharRegistered Stream Socket Transports tcp, udpRegistered Stream Filters convert.iconv.*, mcrypt.*, mdecrypt.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, zlib.* 还在纠结?贴出 echo base64_encode($mysqli->connect_error); 的结果 08nT2sS/seq7+sb3u/28q77cvvijrM7et6jBrL3ToaMNCg== 上次没看到把echo base64_encode($mysqli->connect_errno); 修改为echo base64_encode($mysqli->connect_error); 后重新运行……非常抱歉…… 文件已经保存的是utf8格式。乱码不是直接写在文件里的中文,是运行连接mysqli,connect_error返回的。 gbk 编码的:由于目标机器积极拒绝,无法连接。mysql 客户端会根据你所使用的操作系统的默认语言产生本地化的错误信息 echo base64_encode($mysqli->connect_error); 的结果:08nT2sS/seq7+sb3u/28q77cvvijrM7et6jBrL3ToaMNCg== 非常感谢!这个能通过更改什么配置把它的默认编码改为utf8吗? 补充说明:mysql的配置文件my.ini中,已经设置了默认编码utf8:[mysql]default-character-set=utf8 求救!关于网站开发的毕业设计论文! 哪位老大帮忙看看联运菜单的"数组生成"代码含义,谢谢! 在Windows下开发的php代码能转到linux下吗? IIS配置PHP不支持父路径的解决 php5+Apache2+WinXp安装的问题。 在xml语言中如何显示?号 求一正则表示式解决问题 (在线等......ing 急) 打算搞一个电影下载的网站,请有经验的DX给些建议 100分谢谢,怎么使论坛中动态内容能被搜索引擎搜到?谢谢 请问大虾,我进入MYSQL后不能创建数据库,请问这是为什么? 小偷程序 谁可以帮我检查一下这段程序?
然后如果connect_errno=2002就自己转一下编码...
也可以用自己的message代替该信息....
文件我都用的是utf8编码,mysql、PHP的默认编码都用的是utf8,
数据库也用的是utf8(这里数据库服务还没有启动,应该和数据库没啥关系)
$mysqli = new mysqli("localhost","username","password","db",3306);
if($mysqli->connect_errno){
echo $mysqli->connect_error;
}
大家可以直接用上边的代码试试,当数据库没启动的时候就是乱码,启动后就是正常的英文错误信息……请注意下帖子中的环境
是 echo base64_encode($mysqli->connect_error);connect_errno 是错误号,已经知道是 2002 了
这个方法试过行不通,因为是在创建mysqli对象的时候出的错,对象没有成功创建,之后没法调用mysqli对象的相关方法……
所以你完全可以不细究.应该和你的mysql client api的版本及设置有关实在想知道可以照楼上唠叨说的把信息贴上来
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.*
08nT2sS/seq7+sb3u/28q77cvvijrM7et6jBrL3ToaMNCg==
上次没看到把
echo base64_encode($mysqli->connect_errno);
修改为
echo base64_encode($mysqli->connect_error);
后重新运行……非常抱歉……
文件已经保存的是utf8格式。乱码不是直接写在文件里的中文,是运行连接mysqli,connect_error返回的。
echo base64_encode($mysqli->connect_error); 的结果:08nT2sS/seq7+sb3u/28q77cvvijrM7et6jBrL3ToaMNCg==
非常感谢!这个能通过更改什么配置把它的默认编码改为utf8吗?
补充说明:
mysql的配置文件my.ini中,已经设置了默认编码utf8:[mysql]
default-character-set=utf8