mysql数据库的字符集如下:
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 = d:\Program Files\MySQL\share\charsets/ collation_connection = latin1_swedish_ci 
collation_database = latin1_swedish_ci  
collation_server = latin1_swedish_ci 有一个数据库test,其中有一个数据表tt,字段aa varchar(10)CREATE TABLE `t` (
  `aa` varchar(10) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |有一记录为'中国',
执行下面代码后,在IE中显示的为乱码,这是怎么回事?我试过将上面的不同的字符集进行设置为GBK或UTF8,都不行。
mysql_query('set names gbk'); //或mysql_query('set names utf8');
$sql='select * from t';  
$result=mysql_query($sql,$conn);
$row=mysql_fetch_array($result);
print_r($row);由于数据库涉及到另一个程序,因为不能更改数据库字符集,只能为latin1
请问是否有办法在IE显示正确的中文内容?还请各位高手指点,万分感谢!

解决方案 »

  1.   


    $aa = iconv("latin1","gb2312",$row['aa']);
      

  2.   

    还是显示为乱码。
    <?php
      $conn=mysql_connect('127.0.0.1,'root','root');
      mysql_select_db('lctest');
      mysql_query('set names gbk'); //或mysql_query('set names utf8'); 
      $sql='select * from t';  
      $result=mysql_query($sql,$conn); 
      $row=mysql_fetch_array($result); 
      print_r($row); 
      echo "<br>=============================<br>";
      $aa=iconv("latin1","gb2312",$row['aa']);
      echo $aa;
    ?>结果是:
    Array ( [0] => ???ú [aa] => ???ú ) 
    =============================
    ???¨
      

  3.   

    并且还有一个这样的问题,我在IE中显示该页面时,在[查看]-[编码]这一栏中总是显示UTF-8,我选择了其他如:GB2312,但重新点开该菜单栏时,还是显示UTF-8,也就是改不了该页在IE中的编码。这是怎么回事呢?
      

  4.   

    你文件默认的编码方式就是utf8当然面页显示的时候就是utf8,你可以在editPlus编辑器下更改其默认编码。
      

  5.   

    问号表示不能识别,编码比较恼火楼主用iconv多试试吧
    类似的
    $aa=iconv("latin1","UTF-8",$row['aa']);
    $aa=iconv("latin1","gbk",$row['aa']);另外,还有那个mysql_query('set names gbk');
    可以考虑注释掉试试看
      

  6.   

    要看好几个文件了,你写入时候在数据库里设的是什么字符集,读出来是用什么字符集,读到另一个页面的时候,页面是什么字符集?
    把这些编码都统一就OK了。基本上这些问题都不会出现的,在
    create database 的时候要一定要定义字符集,mysql 默认的是 latin
      

  7.   

    mysql_query('set names utf8'); 
    我都是用这个的从没有出现过乱码
      

  8.   

    呵,谢谢!改成DOS就行。
    真晕呀,为这个问题搞了二天,试了多种方式,在mysql CMD下,都可以正常显示中文,但在IE中就不能。
    呵,解决了!谢谢!