您的位置:首页 > 编程语言 > PHP开发

再谈PHP开发中的中文编码问题

2007-08-27 08:41 459 查看
在关于php显示mysql乱码问题上,前面我曾经转载了一篇这样的文章,但是在最近的一次开发中,还是出现了乱码。其实上篇文章本身是正确的。最后我找到了,我之所以出现乱码的原因,在这里写出来和大家分享。

我采用的操作系统是:FreeBSD6.2,当初安装mysql的版本是5.1.20-beta;我是采用的ports默认安装的,所以安装完以后,mysql server端的编码用的是默认的latin1。我在创建数据库的时候,用的一下语句:
create database dbName default character set utf8 collate utf8_general_ci;
这样,数据库的编码就是utf8 的。
可以通过 use dbName; status 命令进行查询,可以显示你的数据库现在的编码是什么。

我本身的数据库也是utf8的。我在导入数据库的时候,开始用的是:mysql -uroot -p dbName < dbName.sql;语句进行导入的。但是这样导入的数据库在phpmyadmin中得到的是乱码;于是我修改了phpmyadmin的语言配置,在phpMyAdmin/libraries 目录下的select_lang.lib.php文件中,把$GLOBALS['mysql_charset_map'] 全局变量中的
'utf-8'        => 'utf8', 改为'utf-8'        => 'latin1', 这样修改以后,phpmyadmin没有出现乱码,但是我的页面当中依然存在乱码,"set names utf8",也没有启到作用,这个时候我就觉得,数据库在导入的时候,好像没有按照utf8编码导入的,可能是按照数据库的服务器端的编码默认导入的,于是我把数据库删除,重新创建,在导入数据库的时候,用了 --default-character-set=utf8 选项,这次页面中,显示正常,但是,phpmyadmin中又出现了乱码,我想应该是把'utf-8'        => 'latin1',该会来的时候了,于是把latin1重新设置为utf8。一切正常。我的页面中和phpmyadmin的页面中,同时显示正常,再也没有了乱码。

想在这里声明一点:如果phpmyadmin出现乱码,请检查你导入数据库的时候的sql文件的编码问题和你的数据库的编码。确保他们统一。个人感觉,修改phpmyadmin而使phpmyadmin显示正常,总觉得有不妥的地方。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息