我从数据库中读取中文字,但是总是出现乱码的现象,怎么办?急急急!

解决方案 »

  1.   

    http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  2.   

    尽量使程序跟数据库编码一致
    如果不一致,连接数据库成功用执行一条语句Set names [gbk/utf8/....][]中为你程序编码
      

  3.   


     
    mysql> show variables like "char%";
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | utf8                       |
    | character_set_connection | utf8                       |
    | character_set_database   | latin2                     |
    | character_set_filesystem | binary                     |
    | character_set_results    | utf8                       |
    | character_set_server     | latin1                     |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    8 rows in set (0.00 sec)mysql> show full fields from categories;
    +--------------+-------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
    | Field        | Type        | Collation       | Null | Key | Default | Extra | Privileges                      | Comment |
    +--------------+-------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
    | categoryid   | tinyint(3)  | NULL            | NO   | PRI | 0       |       | select,insert,update,references |         |
    | categoryname | varchar(30) | utf8_general_ci | YES  |     | NULL    |       | select,insert,update,references |         |
    +--------------+-------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
    2 rows in set (0.00 sec)mysql> select * from categories;
    +------------+--------------+
    | categoryid | categoryname |
    +------------+--------------+
    |          1 | 国内新闻 |
    |          2 | 国际新闻 |
    |          3 | 军事新闻 |
    |          4 | 体育新闻 |
    |          5 | 科技新闻 |
    |          6 | 财经新闻 |
    |          7 | 娱乐新闻 |
    |          8 | 社会新闻 |
    +------------+--------------+
    8 rows in set (0.00 sec)
    当我在php中访问表中的中文字时,中文字出现乱码,我该怎么解决?急急急!
      

  4.   

    set name ...不是修改
    只是按你指定的编码格式返回数据给你   不改动数据库数据
      

  5.   

    似乎楼主并不在意别人的回复啊!!!一楼给你的贴子似乎没兴趣看啊。3. PHP 乱码, 同样 mysql_query("set name 'gbk'"); 其它API也类似。
      

  6.   

    | categoryname | varchar(30) | utf8_general_ci | YES  |   | NULL  |     | select,insert,update,references |     |
    set names 'utf8'
      

  7.   

    set names "utf-8"后时号时坏。