两个不同编码的页面之间的参数传递( 解码 )
2008-09-06 17:02
375 查看
今天同学问了个问题,说是两个不同编码的页面之间参数传递的出现乱码.他是在config文件里配置 <globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312"/> 配置页面的编码的,整个项目都是gb2312的编码.但是从html页面传递的参数是utf-8编码例如<html><body><a href="default.aspx?name=xiage" /></body><html>
接收参数的页面是aspx页面,编码是gb2312然而接收的数据Request.Params["name"].ToString();是乱码;
就好像直接从utf-8直接转化成gb2312的一样,肯定会出现乱码的.试了 string str = Request.Params["name"].ToString(); byte[] bts = Encoding.GetEncoding("gb2312").GetBytes(str); string ss=Encording.getEncoding("utf-8").GetString(bts);
结果ss是乱码,接个编码改了好多次仍是乱码.
到网上查查资料没法想有相关的问题,但是发现了 HttpUtility这个类,以前没有用过,这个类是解决URL编码相关问题的,有个UrlDecode(,)方法.这个方法是解码URL中的字符串的.于是可以这样写:
string str = Request.Params["name"].ToString(); byte[] bts = Encoding.GetEncoding("gb2312").GetBytes(str); string ss = System.Web.HttpUtility.UrlDecode(bts,System.Text.Encoding.GetEncoding("utf-8")); 果然 ss 获取到了正确的值.
接收参数的页面是aspx页面,编码是gb2312然而接收的数据Request.Params["name"].ToString();是乱码;
就好像直接从utf-8直接转化成gb2312的一样,肯定会出现乱码的.试了 string str = Request.Params["name"].ToString(); byte[] bts = Encoding.GetEncoding("gb2312").GetBytes(str); string ss=Encording.getEncoding("utf-8").GetString(bts);
结果ss是乱码,接个编码改了好多次仍是乱码.
到网上查查资料没法想有相关的问题,但是发现了 HttpUtility这个类,以前没有用过,这个类是解决URL编码相关问题的,有个UrlDecode(,)方法.这个方法是解码URL中的字符串的.于是可以这样写:
string str = Request.Params["name"].ToString(); byte[] bts = Encoding.GetEncoding("gb2312").GetBytes(str); string ss = System.Web.HttpUtility.UrlDecode(bts,System.Text.Encoding.GetEncoding("utf-8")); 果然 ss 获取到了正确的值.
相关文章推荐
- 两个不同HTML页面之间参数传递
- 不同页面之间实现参数传递的几种方式讨论
- 在不同页面之间传递参数
- 使用session在不同页面之间传递参数,sqldatasource按条件查询
- javascript通过url向jsp页面传递中文参数乱码解决方法(两次编码,一次解码)
- Windows Phone 7 Tip - 不同页面之间的参数传递
- Windows Phone 7 Tip - 不同页面之间的参数传递【转】
- 不同页面之间实现参数传递的几种方式讨论
- 不同页面之间实现参数传递的几种方式
- 使用委托在两个页面之间传递参数
- 不同页面之间实现参数传递的几种方式
- JQuery Mobile 两个页面之间的参数传递
- 在不同的页面之间用javascript传递参数
- js实现两个页面之间跳转参数传递
- javaweb关于两个项目session传递以及不同项目之间页面传值的总结
- Jquery在两个HTML页面之间传递参数
- 两个页面之间传递参数
- JavaScript实现的base62 encode/decode,用于页面上直接对作为参数传递的url本身的编码和解码。
- 关于不同页面之间实现参数传递的几种方式讨论
- js实现两个页面之间跳转参数传递