mysql4.0升级到5.0,phpmyadmin乱码,网站程序正常

原贴:http://topic.csdn.net/t/20051202/14/4433806.html

mysql4.0升级到5.0,phpmyadmin乱码,网站程序正常,helpme!!!

楼主aiiiq(外星人木有小JJ)2005-12-02 14:25:54 在 Web 开发 / PHP 提问

网站程序的编码都是gb2312,程序一切正常  
   
  但在phpmyadmin   2.7.0里面就是乱码。。。  
   
  4.0  
    音乐欣赏  
   
  5.0  
  ÒôÀÖÐÀÉÍ  
   
   
  mysql4.0  
  -----------------------  
  character   set     latin1     latin1      
  character   sets     latin1   big5   czech   euc_kr   gb2312   gbk   latin1_de   sjis   tis620   ujis   dec8   dos   german1   hp8   koi8_ru   latin2   swe7   usa7   cp1251   danish   hebrew   win1251   estonia   hungarian   koi8_ukr   win1251ukr   greek   win1250   croat   cp1257   latin5     latin1   big5   czech   euc_kr   gb2312   gbk   latin1_de   sjis   tis620   ujis   dec8   dos   german1   hp8   koi8_ru   latin2   swe7   usa7   cp1251   danish   hebrew   win1251   estonia   hungarian   koi8_ukr   win1251ukr   greek   win1250   croat   cp1257   latin5      
  -----------------------  
   
   
  mysql5.0  
  -----------------------  
  character   set   client     utf8     latin1      
  character   set   connection     latin1     latin1      
  character   set   database     latin1     latin1      
  character   set   results     utf8     latin1      
  character   set   server     latin1     latin1      
  character   set   system     utf8     utf8      
  collation   connection     latin1_swedish_ci     latin1_swedish_ci      
  collation   database     latin1_swedish_ci     latin1_swedish_ci      
  collation   server     latin1_swedish_ci     latin1_swedish_ci      
  -----------------------  
  问题点数:100、回复次数:9Top

1 楼xuzuning(唠叨)回复于 2005-12-02 14:30:15 得分 20

mysql4.0升级到5.0,phpmyadmin乱码,网站程序正常  
   
  这只能说明phpmyadmin在处理上有问题!!!  
  因为phpmyadmin要使用漏洞百出的mb_string扩展Top

2 楼aiiiq(外星人木有小JJ)回复于 2005-12-02 14:42:43 得分 0

没有发现   PHP   的扩展设置mbstring,   而当前系统好像在使用宽字符集。没有   mbstring   扩展的   phpMyAdmin   不能正确识别字符串,可能产生不可意料的结果.  
   
   
   
  我没装mb_string,不想编译mysql5.0  
   
  怎样查看mysql4.0有没有装mb_string呢?我用的是linuxTop

3 楼helloyou0(你好!)回复于 2005-12-02 15:17:16 得分 20

这个还是character   set的问题。  
  phpmyadmin是把客户端设为utf8的。  
  你的库里的字段如果是latin1,它做latin1到utf8的转换,这个结果不可能是正确中文。  
  而你的程序不受影响是因为两个(>128)的latin1的字符是能够拼成一个gbk汉字的。  
   
  你需要把数据库character   set设为gbk或utf8,  
  根据你的客户端在程序里连接后使用set   names   xxx  
  如果需要,可能要重新导入一下原有数据Top

4 楼ashchen(老陳)回复于 2005-12-02 15:19:08 得分 20

这不是mb_string的问题  
  pma在mysql4.1版本后使用utf-8编码,而数据库内是gb2312当然乱了  
    可以用其他的管理工具ssTop

5 楼aiiiq(外星人木有小JJ)回复于 2005-12-02 15:32:25 得分 0

mysql>   show   variables   like   "%char%";  
  +--------------------------+----------------------------------------+  
  |   Variable_name                         |   Value                                                                     |  
  +--------------------------+----------------------------------------+  
  |   character_set_client           |   latin1                                                                   |  
  |   character_set_connection   |   latin1                                                                   |  
  |   character_set_database       |   latin1                                                                   |  
  |   character_set_results         |   latin1                                                                   |  
  |   character_set_server           |   latin1                                                                   |  
  |   character_set_system           |   utf8                                                                       |  
  |   character_sets_dir               |   /usr/local/mysql/share/mysql/charsets/   |  
  +--------------------------+----------------------------------------+  
  7   rows   in   set   (0.02   sec)  
   
  mysql>   请大侠看看,咋办?Top

6 楼aiiiq(外星人木有小JJ)回复于 2005-12-02 15:33:52 得分 0

mysql>   show   variables   like   "%colla%";  
  +----------------------+-------------------+  
  |   Variable_name                 |   Value                           |  
  +----------------------+-------------------+  
  |   collation_connection   |   latin1_swedish_ci   |  
  |   collation_database       |   latin1_swedish_ci   |  
  |   collation_server           |   latin1_swedish_ci   |  
  +----------------------+-------------------+  
  3   rows   in   set   (0.00   sec)  
   
  mysql>   还有这个。。。Top

7 楼helloyou0(你好!)回复于 2005-12-02 15:43:28 得分 20

character_set_database       |   latin1       =>   gbk  
  看所有varchar的字段后面的character   set都应该变成一样的gbk了  
   
  程序中连接之后   执行   ‘set   names   gbk'  
  在执行这个之后   collation_connection   、client、result的character   set都应该是gbk了。  
  (要看的话,要在程序里做   show   variables   ,   在外面做不一样,是基于连接的)  
   
  这个时候看程序运行的结果,如果不对,数据要重新导入一下。  
  不知道你目前导入导出数据是如何做的,也要注意character   set的问题,要不导进去编码就不对。  
   
  这些搞好了,phpmyadmin应该就对了  
   
  Top

8 楼ashchen(老陳)回复于 2005-12-03 12:22:08 得分 20

最好的办法是:  
  把phpmyadmin的lang/chinese_simplified-gb2312.inc.php覆盖chinese_simplified-utf-8.inc.php  
  Top

9 楼aiiiq(外星人木有小JJ)回复于 2005-12-05 09:05:58 得分 0

bu   hao   yong
阅读更多
个人分类: mysql的升级相关
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭