net序列动态aspx页面传递中文参数出现乱码的解决方案 asp.net

问题引入:当我们制作网站项目的时候,如果页面之间存在中文参数的传递,那么,在传递过程中,会出现乱码,常见的就是直接传递参数,在浏览器地址栏那里显示出乱码!一旦出现乱码,再次读取传递参数的值,极有可能接收到的数据是不正确的数据,这是致命性的错误!另外,地址栏显示出乱码,上网浏览您的网页的客官,会误认为您的网站挂马,或者带病毒,这会在无形之中让您的网站的受欢迎程度大打折扣!

俺的切身体验:

昨天晚上,俺下载了一个精典的绿色导航菜单,苦战一小时,终于将其制服,修改为符合自己网站的导航,谁知,将导航应用到ASPX页面时,老显示不出导航效果来,让俺郁闷不堪!之前俺曾经将其他的导航应用到ASPX页面,未曾出现这样的问题!

百思不得其解,屡试不得要领!当时也曾经想到过编码的方式,在引用导航的页面中增加中文编码方式,可仍然无济于世!

郁闷之余,昨夜3点左右,只得弃站而观看欧洲杯,以解我心头之痛!

今天早上上班,忽然想到可以在网站项目的配置文件那里设置全局编码方式,只是抱着试一试的态度将其修改,结果令俺大吃一惊,效果出来了,成功拉!

下面与大家一起来分享如何修改编码方式吧!

①通过Web.config全局配置文件修改编码方式

<configuration >
<system.web >
<globalization requestEncoding="gb2312" responseEncoding="gb2312" / >
</system.web >
</configuration >

上述代码,加入到Web.config相应位置即可!

②传递中文参数之前进行编码转换

发送页面编码:

js:
var MyString=encodeURI("中文参数值");
window.navigate("MyPage.aspx?MyString=" MyString);

aspx:
string MyString=Server.URLEncode("中文参数值");
Response.Redirect("MyPage.aspx?MyString=" MyString);

接收页面解码:

aspx:
string MyString = Server.URLDecode(Requext.querystring["MyString"]);

js:
var MyString = decodeURI(aaa);

知识扩展:顺便扩展点知识吧,发个技术文章,文字太少了,不划算!

表单提交中Get和Post方式的区别

①get是从服务器上获取数据,post是向服务器传送数据。

②get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

③对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。

④get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。

⑤get安全性非常低,post安全性较高。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值