Chinaunix首页 | 论坛 | 博客
  • 博客访问: 218422
  • 博文数量: 68
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 695
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-19 21:17
文章分类

全部博文(68)

文章存档

2009年(16)

2008年(12)

2007年(27)

2006年(13)

我的朋友

分类: Mysql/postgreSQL

2007-08-04 14:46:31

参考文章:
发表于  2005-12-17
  作者:esayr 
解决phpmyadmin 乱码,支持gb2312和utf-8  

显示程序
连接
数据库中的内容


在libraries/select_lang.lib.php中的数组$available_languages中列出了所有可用的语言,并指定这些语言的显示名称,所对应的语言包文件(在lang目录下)。
在进入phpMyAdmin首页时,在右边有个名为Language的下拉列表框,这里可以设置phpMyAdmin界面的显示语言。但是这样我们选择了简体中文,网页的编码仍是:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

细心的人会发现这里并没有列出上段数组中所有的语言,而所列出的语言都是以utf-8编码的,对应上段数组中的key以utf-8结尾的那些。所以esayr文中的方法便是利用了这一点,将上述数组中的'zh-gb2312'改名为'zh-gb2312-utf-8',用了这样一个小技巧后,这个gb2312编码的简体中文便出现在下拉列表框里,用来选择使用了。
但我试了,应该要这样,才是规范的做法:
如果设置了具体语言:
$cfg['Lang']     = 'zh-gb2312';
这个列表框便不会出现,phpMyAdmin的网页也就直接地使用这个语言,网页的编码同时也指定了。

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />


小提示:在phpMyAdmin的顶级目录里建了一个config.inc.php文件,在里面放这个$cfg['Lang']设置,看文档好象是,除了在config.inc.php有设置的之外,默认使用libraries/config.default.php中的配置。
在这个config.inc.php文件中不要放中文,因为我们建的文件一般是ASC编码的,而网页要使用其他的编码,如utf-8,还没有指定。这样,有可能导致错误,本人便是因为在其中使用了中文注释,结果导致设置无效的。

原来我们将中文内容存取数据库时,都未指定字符集的。那么,它们便是使用mysql默认的字符集latin1。现在我们用phpMyAdmin浏览一个原来的表,竞是乱码。在phpMyAdmin时执行SQL:

SHOW VARIABLES LIKE "char%";


结果为:
Variable_name     Value
character_set_client     gb2312
character_set_connection     latin1
character_set_database     latin1
character_set_filesystem     binary
character_set_results     gb2312
character_set_server     latin1
character_set_system     utf8
character_sets_dir     /usr/share/mysql/charsets/

可见,phpMyAdmin使用gb2312作为存取的字符集。为了与原来的latin1存取的保持一致,按esayr指点的方法:修改libraries/select_lang.lib.php中的数组$mysql_charset_map,指定:
'gb2312'       => 'latin1',
这样,我们就可以仍以latin1字符集方式存取原latin1字符集的数据了。
Variable_name     Value
character_set_client     latin1
character_set_connection     latin1
character_set_database     latin1
character_set_filesystem     binary
character_set_results     latin1
character_set_server     latin1
character_set_system     utf8
character_sets_dir     /usr/share/mysql/charsets/





阅读(2622) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~