问题比较麻烦我试着描述一下,为了将excel的资料导入数据库我下了phpexcelreader这个class,将里面的example改了一下为了支持中文我用:
$data->setOutputEncoding('cp936');作为输入编码,然后连接数据库导入都没有问题,但是打开phpmyadmin后发现是乱码,试着吧上面那条语句改成:$data->setOutputEncoding('utf-8');也不行于是我在连接数据库之前加了一句:mysql_query("SET NAMES 'gbk'");在phpmyadmin里面显示正常了我看了下网页的编码显示的是“(中文简体)gb18030”而不是“(中文简体)gbk”。然后我打开cmd进入mysql用select语句打开数据库发现在cmd下显示的却是乱码,我同样运行了一句“set names 'gbk'”在select语句打开就显示正常了。我以为是因为编码的问题我想为了安全都用utf-8格式,可是用了很多办法都不能同时让phpmyadmin 和cmd运行的mysql都不显示乱码。后来看mysql的document里面说mysql的编码有好多个比如character_set_client,character_set_results等等,我就想都换成utf-8于是我在程序里把上面那句改成:$data->setOutputEncoding('utf-8');同时在数据库连接里写上“mysql_query(set names 'utf8')”在phpmyadmin里可以显示正常了,可是同样我在cmd的mysql里用“set names 'utf8'”按我的预期应该和phpmyadmin一样了可是这回显示的还是乱码。要想在cmd的mysql里显示正常还是要写“set names 'gbk'”;我有点糊涂了不知道是怎么回事。按理说同样程序运行下来顺序是先:$data->setOutputEncoding('utf-8');然后mysql_query("SET NAMES 'gbk'");只不过一个是网页运行的一个是在cmd手工命令运行的为什么一个乱码一个正常呢?急求哪位高手能给我指点一下怎样让在phpmyadmin里和cmd的mysql里都显示中文正常!万分谢谢!
$data->setOutputEncoding('cp936');作为输入编码,然后连接数据库导入都没有问题,但是打开phpmyadmin后发现是乱码,试着吧上面那条语句改成:$data->setOutputEncoding('utf-8');也不行于是我在连接数据库之前加了一句:mysql_query("SET NAMES 'gbk'");在phpmyadmin里面显示正常了我看了下网页的编码显示的是“(中文简体)gb18030”而不是“(中文简体)gbk”。然后我打开cmd进入mysql用select语句打开数据库发现在cmd下显示的却是乱码,我同样运行了一句“set names 'gbk'”在select语句打开就显示正常了。我以为是因为编码的问题我想为了安全都用utf-8格式,可是用了很多办法都不能同时让phpmyadmin 和cmd运行的mysql都不显示乱码。后来看mysql的document里面说mysql的编码有好多个比如character_set_client,character_set_results等等,我就想都换成utf-8于是我在程序里把上面那句改成:$data->setOutputEncoding('utf-8');同时在数据库连接里写上“mysql_query(set names 'utf8')”在phpmyadmin里可以显示正常了,可是同样我在cmd的mysql里用“set names 'utf8'”按我的预期应该和phpmyadmin一样了可是这回显示的还是乱码。要想在cmd的mysql里显示正常还是要写“set names 'gbk'”;我有点糊涂了不知道是怎么回事。按理说同样程序运行下来顺序是先:$data->setOutputEncoding('utf-8');然后mysql_query("SET NAMES 'gbk'");只不过一个是网页运行的一个是在cmd手工命令运行的为什么一个乱码一个正常呢?急求哪位高手能给我指点一下怎样让在phpmyadmin里和cmd的mysql里都显示中文正常!万分谢谢!
解决方案 »
- 哪个兄弟姊妹帮忙解释下以下代码啊,感激中。。。
- zend studio 速度慢的问题
- 配置lamp服务器的软件包下载地址???
- 求教一个基本的编码问题!~很纠结
- ucenter的头像上传camera.swf,怎么让头像的长宽固定比例呢?
- 自己写的原创php内容,没用人看
- ecshop 产品相关的图片有那几种 ?
- zend studio PHP 运行环境是什么?我安装老师出错呢?
- phpMyAdmin Fatal error: Maximum execution time of 30 seconds exceeded in
- 存在没有对应任何页面的action 当用户直接登录后,输入这样的url 得到的是整个空白的页面 或者是返回的json数据格式
- 怎么判断数据存在,如果在怎样删除?
- 我插入的时候,要如何知道它分配的ID号是多少呢?
它会同时设置3个参数, character set results ,character set client,character set connection,在一次数据库操作过程中,编码的转换过程是:
(输入)client=>connection=>database(或server或table或column)=>connection=>results(输出)
就是说不管你数据库是什么编码,
如果你在gbk的mysql客户端看,需要set names gbk,
如果是台湾人在big5的机器用mysql连接上后,就需要set names big5如果是网页,就需要和你网页的<meta http-equiv="Content-Type" 里设置的码一致.可以参考这个老帖子,记得我还写过一个更详细的,不过好像搜索不到了.....
http://topic.csdn.net/t/20051213/11/4456072.html
Date_default_timezone_set ( "PRC" );