Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18670545
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类:

2008-05-29 09:28:40

很多PHP爱好者一直受phpmyadmin的乱码问题困扰.我自从有了mysql-front后,我就很少使用phpmyadmin了.但每次连接远程主机,就比较慢.造成操作不便.今天有点时间,就下了最新的版本来研究.
首先说明我的数据库使用情况:

phpmyadmin 版本2.7.0-pl1
(如果你使用其它版本,可能会有所不同

phperz.com

mysql版本MySQL 5.0.11-beta-nt

phperz.com

我在以前是使用GB2312编码方式,直接写入数据库的,字符集是mysql默认的latin1 phperz.com

PHP5以后我写的程序都改用UTF-8编码方式了,也是直接读写的.所以字符集也应试是mysql默认的latin1

我在用PHP操作数据时 没有 使用过以下语句:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;

好,开始吧. phperz~com

 把下载的ZIP包解压到www目录后打开文件夹...好久不见,配置文件名都从config.inc.php改成了config.default.php .

php程序员站

我修改了以下代码: php程序员站

31行
$cfg['PmaAbsoluteUri'] = '';

php程序员站

45行
$cfg['blowfish_secret'] = 'this'; php程序员站

71行
$cfg['Servers'][$i]['auth_type']     = 'cookie';    // Authentication method (config, http or cookie based)?

www~phperz~com

接着,浏览器打开 使用root登录.language是默认的chinese simplified(zh-utf-8)

浏览一个UTF-8的表.乱码. php程序员站

大小: 49.4 K
尺寸: 150 x 56
浏览: 11 次
点击打开新窗口浏览全图

查看了html源代码,charset=utf-8

查看他的语言选择文件libraries/select_lang.lib.php phperz.com

263行 'utf-8'        => 'utf8', phperz.com

我用的是默认的latin1 所以,这里应试改成latin1.改好保存,刷新.成功

www~phperz~com

大小: 46.96 K
尺寸: 150 x 86
浏览: 6 次
点击打开新窗口浏览全图

php程序员站

转到一个以前用GB2312编码录入的库.是乱码. php程序员站

退出.以chinese simplified(zh-gb2312)登录.到处看.乱码.

phperz.com


和上面一样找到libraries/select_lang.lib.php

phperz~com

250行 'gb2312'        => 'gb2312', php程序员之家

把gb2312改为latin1.保存,刷新.却不行.还是一样.

phperz.com

大小: 34.22 K
尺寸: 150 x 37
浏览: 8 次
点击打开新窗口浏览全图 php程序员站

很纳闷.查看了html源代码,charset还是utf-8.不对呀,应试是GB2312才正常.

无意中在首页的language下拉菜单中,发现没有登录时的chinese simplified(zh-gb2312)这一栏.(下图)

php程序员站

大小: 76.8 K
尺寸: 150 x 71
浏览: 13 次
点击打开新窗口浏览全图 php程序员之家

不解,仔细一对,列表项都是utf-8结束的.问题应试在这. phperz~com

找libraries/select_lang.lib.php里对应的zh-gb2312,在它后面加上一个"-utf-8" php程序员站

这回有了.查看了html源代码,charset是GB2312了. php程序员之家

大小: 39.87 K
尺寸: 150 x 65
浏览: 7 次
点击打开新窗口浏览全图

如何在两种语言转换呢?
我试着回到UTF-8编码的表.没错,是乱码. www~phperz~com

转到首页.language下拉菜单中选择zh-utf-8.再看看,OK了. php程序员之家

试着修改,添加新数据.都没再有乱码了. php程序员之家

结束:我的思路是以html的charset对照mysql的charset.

phperz~com

最后提醒:

php程序员站

如果你操作表时使用过以下语句:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8; phperz~com

那么你修改时libraries/select_lang.lib.php可能会有所不同.多试试几种方式.会有不一样的收获.
php程序员站


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