新闻动态
asp.net网页乱码
https://www.sytm.net 发布日期:2010/6/12 14:22:16

这几天公司的网站出现了乱码的问题,上网查看后发觉主要是由于字体的原因。UTF8和GB2312这
个字体惹的祸事。
如果你的网页是 utf-8 ,而你的浏览器是 gbk或者 gb2312 的话就会出现乱码! 前提也要确定你
的网页源码字符集是哪种编码的,一般中文才会出现乱码. 应该是编码的问题,建议你使用UTF-8编码
 在web_config加一句 <globalization fileEncoding="utf-8" requestEncoding="utf-8"
responseEncoding="utf-8"/>这样所有页面都是utF-8格式的了获取数据后编码编成你想要的格式后
再显示 存储数据时也编成你想要的格式在存储。
其实由于字体不同引发的乱码问题还是很多的。比如传递中文参数时的乱码问题,中文抓取过程中的
乱码问题,这些的问题的根源就是因为字体的不同而造成了非常不好的影响。但是解决也是非常好解决
的。比传递参数过程中的乱码的解决方案。
asp.net默认的编码是UTF-8
js文件里的编码也是UTF-8
当你要在aspx页面上进行传中文参数时会出现乱码
<-----request.aspx--接收参数页----->
<----response.aspx--传送参数页----->

例一:<a href="request.aspx?str=中国人"></a>
解决办法一:
1.可以和改webconfig的编码 如:
        <location path='response.aspx'>
            <system.web>
                <globalization fileEncoding='gb2312' requestEncoding='gb2312' responseEncoding='gb2312' culture='zh-CN'/>
            </system.web>
        </location>
注意:你也要把request.aspx页面上的编码也改成同样的,虽然中文乱码解决了,但如果你用到了js文件就会出现乱码
//用这以上方法的话不会改变网站的其它页面上的编码
        <location path='request.aspx'>
            <system.web>
                <globalization fileEncoding='gb2312' requestEncoding='gb2312' responseEncoding='gb2312' culture='zh-CN'/>
            </system.web>
        </location>
解决办法二:
1.如果你不想动webconfig 你可以在”response.aspx.cs“里面对参数进行编码 如:response.aspx在页面上:
<a href="request.aspx?str=<%=str%>"></a>
response.cs页面上:
         声明一个变量str
        public string str="中国人";
        str= HttpUtility.UrlEncode(str,System.Text.Encoding.GetEncoding("GB2312"));
//这时str已经是编码后的
2.而在request.aspx.cs文件中也要进行转换 如:
声明一个变量  
System.Collections.Specialized.NameValueCollection gb2312=HttpUtility.ParseQueryString(Request.Url.Query,System.Text.Encoding.GetEncoding("GB2312"));
string str=gb2312["str"];
这里的str就是你要接收的中文。

例二
如果你想在js里面传送中文参数 如:
request.aspx?str="+encodeURI("中国人");
这样就不会出现乱码了

例三
就是我在cshn上找到的一个方法我也没试过,大家可以试一下
protected   string   GetQueryString(string   sKey,System.Text.Encoding   e)
{
    string QueryString=Server.UrlDecode(System.Web.HttpUtility.UrlDecode(Request.ServerVariables"QUERY_STRING "],e));
    System.Text.RegularExpressions.Regex   reg   =   new   System.Text.RegularExpressions.Regex(sKey+"=([^&$]*?)(&|$) ");
    System.Text.RegularExpressions.Match   m   =  reg.Match(QueryString); 
    if   (m.Success) 
    { 
       return   m.Result( "$1 "); 
    }
     else  
     return   String.Empty;              
}
//以上这个不受编码影响,只需知道原来传入的编码就可.
 

更多阅读
  • 线上订货系统让全渠道销售触手可及 近年来,中国电商平台发展迅速,以淘宝、京东等电商为代表的新兴商业模式被越来越多的客户所推崇,中国网民...
  • 添美订货系统十月更新日志 添美订货系统是东北开发订货软件的厂商,该订货软件实现了全渠道全客户端的覆盖。拥有南方的易订货、订货宝...
  • 三好街的渠道订货系统 现如今,人们对电子数码产品的需求与日俱增,但是不少电子数码产品企业的生意却未见起色,为什么?以三好街...
返回列表
© 2010 TianMei Technology All rights reserved. ICP:辽B2-20150138辽公网安备 21010202000010号  目录概览