如何使用Response.Redirect 方法传递汉字

摘:ASP.NET 疑难解答 200问

使用Response.Redirect 方法传递汉字,有时会发现所传的值和接收到的内容不符,接收的值丢失了几个字或者变成了一堆乱码。那么如何才能保证所传递的汉字被正确接收呢?

解答:

为了保证所传递的汉字被正确接收,可以在传递之前使用UrlEncode 方法对所传递的汉字进行Url编码。这样就保证通过URL 从 Web 服务器到客户端进行可靠的HTTP传输,避免了接收值是乱码的现象。

页面A 传递值的代码如下:

String Message = Server.UrlEncode("欢迎学习 ASP.NET!");

Response.Redirect("WebForm2.aspx?Msg="+Message);

页面B 接收值的代码如下。

String Message = Server.UrlDecode(Request.QueryString["Msg"]);

专家点评:

有些情况下传递的汉字变成乱码是由于浏览器和程序所用的编码格式不同引起的,ASP.NET  应用程序默认的编码格式为“utf-8”。打开程序的 Web.config 文件可以看到如下代码。

 <?xml version="1.0" encoding="utf-8"?>

可通过修改 encoding  属性值 改变应用程序的编码格式,有些情况下为了解决显示中午乱码的问题需要将此属性设置为 “gb2312”。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值