my.ini 数据库配置文件之前的 charset 是 默认的,后来给干成了 utf8,但结果还是 乱码。再次把 表的 字符类型干成 utf8, 还是乱码( alter table unit default charset=utf8 )在查询之前使用 ( mysql_query ( set namus utf8 ) ) 也不行.
PHP 页面采用的是简体中文 utf8 的格式,而把这个格式改成 gb2312( 在浏览器中改显示方式 ),其他网页字符编程了乱码,而从MySQL 中调用出来的 数据却正常显示了。把网页的现实格式( head 里面的) 给干成 gbk 或 gb2312 的,还是乱码,数据库中调用的数据显示正常。   这要怎么做呢?程序是在 Linux 中写的,后来移到 Windows 环境中了.!   但是乱码问题解决不了,在 linux 中显示一切都很正常!

解决方案 »

  1.   

    set names utf8 不管写入还是读取都用这个, 就没有问题了。
      

  2.   

    文件保存格式也是UTF8格式的么?
      

  3.   

    没有特别的明白你的意思,你的意思是说我的 *.sql 文件是 utf8 的格式吧?
      这个倒不是,但是在数据库中显示 都是很正常的,没有出现乱码的迹象....只是在页面中出现乱码!
      

  4.   

    1.数据库的字符集gb2312,
    2.网页上的字符集gb2312,
    3.php程序存储和读取得时候都要用mysql_query("SET NAMES 'gb2312'",$connect).
    上面3点全部符合就不会出现乱码,或者全部UTF-8 也可以。
      

  5.   

    gb2312好像不行吧 得 gbk
      

  6.   

    我的意思是你的php文件和html文件在保存的时候所选的格式是不是和你在CODE里写的是一致的。当然还要保证5L所说的那些也完全一致。如果最后还是不行,查看一下你浏览器的编码格式。
      

  7.   

    如果数据库用的utf8
    查询操作前用
    mysql_query("SET NAMES 'gb2312'). 应该就是正常的中文啦,只有中文才有乱码
      

  8.   

    显示出来的是因为你存入时候的编码不一致造成的。 
    你可以先加上 mysql_query("SET NAMES 'utf8'); 
    插入数据, 再读出数据测试一下。
      

  9.   


     谢谢 5L 我的问题1得到了解决,但是还是同一个问题,在其他的地方又出现了问题,看看要如何解决呢? 现在从网页上存取和读取数据都是正常显示的了,但是如果我是在 CMD 命令行 中向 MySQL 数据库插入数据的时候,再从网页上读取这个数据,就又会出现乱码!  按照 楼上们的说法,我把 set names '*'  * 改成 gbk gb2312 gb18030 utf8  都显示 乱码!  这时?  我又要怎么做呢?
      

  10.   

    插入数据之前同样要做这样的处理 mysql_query("SET NAMES 'gb2312'). 
    之后你再mysql_query("insert......")
      

  11.   


     哦! 明白了,按照 12L 的方式,我在插入数据时仍要使用PHP来做是这样吧。恩,如果是这样的话,那我已经做好了,我想知道还有没有其他的方式!