asp.net Request.QueryString中文乱码问题

 

项目中总会遇到中文乱码的问题,java,php,ast.net都如此。
        中文的问题分为3种:
            第一种是代码文件中自带的,如:[<asp:Label ID="Label1" runat="server" Text="Label">类别序号</asp:Label>
            第二种是数据库(或文件)中的:<asp:Label ID="nameLabel" runat="server" Text='<%# Bind("name") %>' />
            第三种是get(post)传递的,Request.QueryString["mmmid"]
          
            如果保证开发环境与部署环境是一致的,那么,中文的问题,一般出在第三个.
            前2个问题,asp。net会替你自动解决, 它的默认全部是utf-8.
            第三个中的post过来的数据也没有问题,如果有问题,与get的解决方式一样。
          
            所以,在asp.net中,主要是在开发时的get的中文传递的问题。
            如果 Request.QueryString的中文乱码问题解决了,那么,中文的问题就都解决了。
          
          国内的服务器,大多数是中文系统,默认配置
        requestEncoding="utf-8"
        responseEncoding="utf-8"
        fileEncoding="gb2312"
        responseHeaderEncoding="utf-8"
   
     你只要在配置文件web.config中加入:      
          <system.web>
        <globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"  responseHeaderEncoding="gb2312" />
        </system.web>
        问题,一般就解决了。
      
        如果还不行,   在aspx,或master文件头部加入:
        <meta http-equiv="Content-Type" content="text/html;charset=gb2312" />
        应该就没有问题了。                
          
   如果你的项目是多语言,源代码及数据库是基于utf-8。但要用Request.QueryString获取中文,
          在配置文件web.config中加入:      
          <system.web>
        <globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="utf-8"  responseHeaderEncoding="utf-8" />
        </system.web>
         在aspx,或master文件头部加入:
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />,
        应该就没有问题了。
         如果有问题的话,说明你的文件不只是一种类型,文件编译出现了错误。
         大多数情况下,说明你的文件含有gb2312编码,
        这时,你要把配置文件中的fileEncoding="utf-8" , 改为gb2312;
        或者,把文件中含有的gb2312编码,改为utf-8;
(在gb2312,utf8相互转换过程中。一定要在与开发环境一致的系统中转换效果最好。
比如:在与开发环境一致的windows系统中,用记事本打开,然后另存为需要的编码就可以了。
如果用第三方工具,一定要多测试后,在转换,转换前要备份,转换后,要测试,
最好,转换一个测试一个。本人感觉用windows自带的记事本的转换的效果最好,起码比ue好,缺点是一次转换一个,
但优点是成功率100%)。
)          
          
而且,要注意一点,在ie6/7/8/, firefox中,他们会有一些不同,个人感觉,firefox的比较符合标准。
但ie6、7、8用的人太多了,所以要全面测试。  
      
     以上的内容在asp.net2,vs2008中文team,windows2008中文系统,iis7,ie6/7/8,firefox3默认配置下,
     进行了多次测试,来支持这段文字的可靠性。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值