希望各位达人可以帮帮忙,情况如下:
1、服务器IIS6.0+MYSQL,数据库用latin1,这个已经不能修改,历史原因。
2、采用printxml的办法生成xml文件,当然已经定义了charset
3、用js读取该xml的时候出现乱码,有时候不乱,有时候乱,重新启动IIS后不乱,尝试过随机参数也不行。
4、单纯访问生成xml文件,也偶尔乱码,重新启动iis就不乱。高分赠送

解决方案 »

  1.   

    没有好办法,最好升级数据库,然后转成uf8就你的这个问题:一是从数据库出库时转一下码;或者在服务器端header一下指定编码,这个js就能识别,latin的可以用gb2312输出,但仍不能保证没有乱码
      

  2.   

    如果能修改数据库还是尽量修改了吧,utf8是最保险的,以后的趋势也都是utf8,我以前就不信这个邪,非要gb2312或者GBK,结果乱的我实在受不了,一咬牙一跺脚,*.js,*.html,*.php,*.css所有类型文件,数据库,添加数据,检索数据全变成utf8了。
    两个字总结,省心。
      

  3.   

    谢谢上面两位哥们
    但是数据库里面有很多数据不能动的,直接转utf8,我怕损失了数据
      

  4.   

    一是从数据库出库时转一下码;或者在服务器端header一下指定编码,这个js就能识别,latin的可以用gb2312输出, 以上两种方法做段程序调试一下嘛!
      

  5.   

    最奇怪的是重新启动IIS就没有乱码了,有没有见同类情况的,我之前一直都怀疑是缓存
      

  6.   

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

  7.   

    有没有人能解释为什么重新启动IIS就不乱了?
      

  8.   

    我这全部使用latin1的mysql表,页面gbk,ajax并没有乱码现象。
    用的是apache2+php5,只要在apache指定默认编码为GBK就行了。IIS不知道有无相应设置,你可以找找看。
      

  9.   

    你也可以尝试以下两种解决办法(这两种办法分别尝试,不要同时用):1.使用gbk,并在输出xml的php中加入
    header("Content-Type: text/html; charset=gbk");2.php使用utf8编码,从数据库中读出的数据用iconv转码为utf8输出。
      

  10.   

    也可能是你数据库本身存在的问题,我原来也是因为用乱码烦了一阵子,当时除下数据库,别的页面都是utf8,你最好把数据库备份了,再把数据库重装下试试.
      

  11.   


    另外还可以尝试一下:
    在你的select语句前用set names 做一下转换,多试试;或者在select语句中用mysql的convert转换一下编码,google一下就知道怎么用了