php显示中文乱码,phpmyadmin里的MySQL数据库中文乱码,如何解决?
情况如下:
   新建php页面时中文显示正常,插入记录集导航条和记录集导航数据时的文字是英文,当运行预览(F12)时,IE页面出现的中文乱码,英文能正常显示;
   当从php页面提交插入记录并返回页面时,显示的提交内容没有乱码,只是在Dreamweaver制作时写入的中文是乱码;
   然后打开http://localhost/phpmyadmin/页面查看数据库,发现刚才输入的中文显示为乱码;
   这个时候,我在数据库里修改刚才输入的中文并保存,这时数据库能显示的是中文,但回到在php页面运行预览(F12)时,在数据库里修改的那部分出现的是很多问号(?),其他没有修改的内容没有变化。请各位高手出手相助!该如何修改才不会乱码?1..安装的是appserv-win32-2.5.9及Dreamweaver CS32..在MySQL Command Line Client输入以下命令时:mysql> SHOW CHARACTER SET;
+----------+-----------------------------+---------------------+--------+
| Charset  | Description                 | Default collation   | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5     | Big5 Traditional Chinese    | big5_chinese_ci     | 2      |
| dec8     | DEC West European           | dec8_swedish_ci     | 1      |
| cp850    | DOS West European           | cp850_general_ci    | 1      |
| hp8      | HP West European            | hp8_english_ci      | 1      |
| koi8r    | KOI8-R Relcom Russian       | koi8r_general_ci    | 1      |
| latin1   | cp1252 West European        | latin1_swedish_ci   | 1      |
| latin2   | ISO 8859-2 Central European | latin2_general_ci   | 1      |
| swe7     | 7bit Swedish                | swe7_swedish_ci     | 1      |
| ascii    | US ASCII                    | ascii_general_ci    | 1      |
| ujis     | EUC-JP Japanese             | ujis_japanese_ci    | 3      |
| sjis     | Shift-JIS Japanese          | sjis_japanese_ci    | 2      |
| hebrew   | ISO 8859-8 Hebrew           | hebrew_general_ci   | 1      |
| tis620   | TIS620 Thai                 | tis620_thai_ci      | 1      |
| euckr    | EUC-KR Korean               | euckr_korean_ci     | 2      |
| koi8u    | KOI8-U Ukrainian            | koi8u_general_ci    | 1      |
| gb2312   | GB2312 Simplified Chinese   | gb2312_chinese_ci   | 2      |
| greek    | ISO 8859-7 Greek            | greek_general_ci    | 1      |
| cp1250   | Windows Central European    | cp1250_general_ci   | 1      |
| gbk      | GBK Simplified Chinese      | gbk_chinese_ci      | 2      |
| latin5   | ISO 8859-9 Turkish          | latin5_turkish_ci   | 1      |
| armscii8 | ARMSCII-8 Armenian          | armscii8_general_ci | 1      |
| utf8     | UTF-8 Unicode               | utf8_general_ci     | 3      |
| ucs2     | UCS-2 Unicode               | ucs2_general_ci     | 2      |
| cp866    | DOS Russian                 | cp866_general_ci    | 1      |
| keybcs2  | DOS Kamenicky Czech-Slovak  | keybcs2_general_ci  | 1      |
| macce    | Mac Central European        | macce_general_ci    | 1      |
| macroman | Mac West European           | macroman_general_ci | 1      |
| cp852    | DOS Central European        | cp852_general_ci    | 1      |
| latin7   | ISO 8859-13 Baltic          | latin7_general_ci   | 1      |
| cp1251   | Windows Cyrillic            | cp1251_general_ci   | 1      |
| cp1256   | Windows Arabic              | cp1256_general_ci   | 1      |
| cp1257   | Windows Baltic              | cp1257_general_ci   | 1      |
| binary   | Binary pseudo charset       | binary              | 1      |
| geostd8  | GEOSTD8 Georgian            | geostd8_general_ci  | 1      |
| cp932    | SJIS for Windows Japanese   | cp932_japanese_ci   | 2      |
| eucjpms  | UJIS for Windows Japanese   | eucjpms_japanese_ci | 3      |
+----------+-----------------------------+---------------------+--------+
36 rows in set (0.00 sec)mysql> SHOW VARIABLES LIKE 'character_set_%';
+--------------------------+----------------------------------+
| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     | utf8                             |
| character_set_connection | utf8                             |
| character_set_database   | utf8                             |
| character_set_filesystem | binary                           |
| character_set_results    | utf8                             |
| character_set_server     | utf8                             |
| character_set_system     | utf8                             |
| character_sets_dir       | C:\AppServ\MySQL\share\charsets\ |
+--------------------------+----------------------------------+
8 rows in set (0.00 sec)mysql> SHOW VARIABLES LIKE 'collation_%';
+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)
3..在Dreamweaver CS3新建php页面时有以下代码:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
4..进入http://localhost/phpmyadmin/页面显示:localhost
服务器版本: 5.0.45-community-nt-log
Protocol version: 10
MySQL 字符集: UTF-8 Unicode (utf8) 
MySQL 连接校对:utf8_general_ciphpMyAdmin - 2.10.2
MySQL client version: 5.0.37
Language: 中文-Chinese simplified其中,打开了数据库列表显示如下:
  数据库          整理     
  mymy2012     utf8_general_ci
  mysql        utf8_general_ci
  phpmyadmin   utf8_bin
  test         utf8_general_ci
  统计: 4 utf8_general_ci
   新建php页面时中文显示正常,插入记录集导航条和记录集导航数据时的文字是英文,当运行预览(F12)时,IE页面出现的中文乱码,英文能正常显示;
   当从php页面提交插入记录并返回页面时,显示的提交内容没有乱码,只是在Dreamweaver制作时写入的中文是乱码;
   然后打开http://localhost/phpmyadmin/页面查看数据库,发现刚才输入的中文显示为乱码;
   这个时候,我在数据库里修改刚才输入的中文并保存,这时数据库能显示的是中文,但回到在php页面运行预览(F12)时,在数据库里修改的那部分出现的是很多问号(?),其他没有修改的内容没有变化。请各位高手出手相助!该如何修改才不会乱码?

解决方案 »

  1.   

    数据库与php页面编码要一直,浏览器编码也要一致
    再看看是否一致,照你说的应该没问题才对,php页面确定是utf-8的?
      

  2.   

    一般数据库编码与php编码一致进行表单操作不会出现乱码,如果使用ajax的话utf-8的页面与数据库也是没问题的
      

  3.   

    首先统一你数据库与页面的编码。使他们一致。
    仅仅是PHP页面显示的中文乱码,而通过PHP查询数据库显示出来的中文正常,则问题主要在你页面编码上。打开http://localhost/phpmyadmin/页面查看数据库,发现刚才输入的中文显示为乱码;
    phpMyAdmin - 2.10.2
    这个主要是你phpMyAdmin的版本过低,低版本的phpMyAdmin不能很好的支持不同的数据库编码。所以才会显示出乱码。
    你下一个较新的phpMyAdmin就可以了,一般为3.X了。
      

  4.   


     在Dreamweaver CS3新建php时自动产生
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      

  5.   


    dingsongtao ,先谢谢你!
    试了将<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      改为<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />就页面就不会乱码了,但每次在新建面时都要手改为gb2312有点麻烦而且,这样页面的编码和数据库的编码是否就不一致了?能否修改为在他自动生成<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />时就已经改为需要的编码?
      

  6.   

    你可以用dreamweaver来对页面重新编码就可以了
    这样你以后打开时就不会乱码了
      

  7.   

    正在下载phpMyAdmin-3.3.3-all-languages(多国语言版)试试看。
      

  8.   


        刚才将phpMyAdmin - 2.10.2删除了,然后用phpMyAdmin-3.3.3-all-languages(多国语言版)改名为phpMyAdmin放在原来phpMyAdmin的位置上。
        PHP页面显示的中文正常,通过PHP查询数据库显示出来的中文正常,IE页面中文显示正常。
    但打开http://localhost/phpmyadmin/页面查看数据库,发现刚才输入的中文依然显示为乱码;在数据库里修改刚才输入的中文并保存,这时数据库能显示的是中文,但回到在php页面运行预览(F12)时,在数据库里修改的那部分出现的是很多问号(?),其他没有修改的内容没有变化。
      

  9.   

    数据库与php页面编码如何设置为一致?
      

  10.   

    创建数据库的时候需要选择编码,不设置数据库设置表的编码也行,设置php编码的话,编辑器的右下角状态栏里有编码格式(edetplus是这样),如果想更改php编码,可以在文件->另存为,然后文件名下面的编码里找
      

  11.   


        PHP页面,通过PHP查询数据库显示出来的中文,IE页面都能正常显示中文。
        但phpmyadmin页面查看数据库显示为乱码;
        在数据库里修改刚才输入的中文并保存后,在数据库里修改的那部分出现的是很多问号,
    其他没有修改的内容没有变化。
      

  12.   

    安装了phpMyAdmin-3.3.3-all-languages(多国语言版)后,发现phpmyadmin里多了些功能,如和Access一样能给数据表间可视化地创建关系(外键)。
      

  13.   

    这个原因 可能是你网站编码与数据库编码不一致。
    比如你网站的编码是gb2312,php程序的输入输出编码也是gb2312.
    而你数据库的编码是其他的编码如utf8。
    这样才会你网站正常,但在phpmyadmin里是乱码(phpmyadmin页面输出的编码是根据你数据库的编码来的,而你网站程序输入给数据库的编码与数据库的编码不一致)。网页的gb2312编码对应的mysql编码是latin1.你检查数据库编码是否与网站编码一致,不仅仅是看数据库的编码,也要看数据库表的字段的编码(这个才是真正影响的地方)。汗一个,不知道说明白没有。
      

  14.   

    phpMyAdmin 3 真好可以创建关系(外键),可惜不会用。谢谢dingsongtao和kyzy_yy_pm 以及各位的帮忙,按说问题是出在数据库的编码与网站的编码不同了。有的回帖说
    将浏览器中的编码改成utf-8,数据库中也是。在php页面首行加上header("Content-type: text/html; charset=utf-8");,必须首行,前面不能有输出。
    还有,在查询数据库时加上:mysql_query(set names utf-8); 加了以上代码后虽然不能完全解决问题,因每个页面都要添加比较麻烦,但可以临时用着。是不是没有彻底解决的办法了?
      

  15.   

    查看如下:
    数据库编码utf8_general_ci,网站编码utf-8,数据表的字段的编码(整理编码)是utf8_general_ci查询数据库时加上:mysql_query(set names utf-8);
    加了以上代码后虽然不能完全解决问题,因每个页面都要添加比较麻烦,但可以临时用着。
    有没有彻底解决的办法了?
      

  16.   

    http://blog.csdn.net/yw1386/archive/2009/10/14/4671845.aspx
      

  17.   

    Dreamweaver里ctrl+j-》页面-》编码是否是utf-8???
    仅仅加meta或header,而页面的实际编码不一致,也会乱码
      

  18.   

    这样用一下应该可以解决问题!mysql_query("set names utf-8/gb2312")
      

  19.   

    my.ini文件中:
    [mysql]
    default-character-set = utf8[mysqld]
    default-character-set = utf8
    character-set-server = utf8
    collation-server = utf8_general_ci
    init_connect = 'SET collation_connection = utf8_general_ci'
    init_connect = 'SET NAMES utf8'php.ini启动了
    extension=php_mbstring.dll
    default_charset = "utf8"Dreamweaver里ctrl+j-》页面属性-》
    文档类型:XHTML 1.0 Transitional
    编码:Unicode(UTF-8)
    查询数据库时加上了:mysql_query("set names utf8;");查看如下:
    数据库编码utf8_general_ci,网站编码utf-8,数据表的字段的编码(整理编码)是utf8_general_ci√查询数据库时加上:mysql_query("set names utf8;");虽然不能完全解决问题,因每个页面都要添加比较麻烦,但可以临时用着。
    有没有彻底解决的办法,不用每次新建页面都在代码中输入mysql_query("set names utf8;");?
      

  20.   

    编码问题,数据库和页面设置统一成utf8即可