将ASP.net 程序从 WINDOWS 2000 SERVER 迁移到WINDOWS 2003 SERVER 出现问题:
 在2000下程序显示正常,但在2003中调用页面时,全部是乱码,修改WEB.CONFIG 文件的全球性设置,将utf-8 改为gb2312 ,虽然显示了中文,但每一空格处均显示为问号“?”。不修改web.config 配置文件,在windows 2003 server 中修改哪里就能正常显示?为什么在2000中正常,而在2003中就不行?

解决方案 »

  1.   

    如果你的用户全用简体中文的话,先看一眼你的machine.config文件,把其中字符集改为gb2312,把你2003srv服务器的控制面板中区域语言环境那设为简体中文,即中文(中国),然后在你的webconfig文件中设置编码、解码字符集全为GB2312,应该就可以了。
    如果还不行,有两个办法,在你需要读取或传输字符串的地方全用httprequest.encode或decode为gb2312;或者引入system.globalization命名空间对字符串进行Parse成zh-CN的CultureInfo文化。
      

  2.   

    ==>但在2003中调用页面时
    你是在2003中调试(或者浏览)你的程序么?如果是这样请查看IE的页面文档编码是否和web.config一致(这还要取决于你在保存页面时的编码方式,VS.NET里面通常是GB2312)。
      

  3.   

    除了把WEB.CONFIG里面的所有UTF-8更换为GB2312(共3个)之外,在页面的头部添加如下:
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">