asp.net 解码gb2312下urlencode后的字符串

  公司网站前期的网页用了gb2312保存用户数据,而我负责的部分用的是utf8,今天恰好要获取前期录入的数据于是毫无悬念地出现乱码问题,经过一番网上的搜索还是找不到完整解决方法,折腾好一段时间终于通过下面的例子推出了问题的所在:

这样的一个业务,客服用gb2312编码后 提交服务器,服务器接收时出现乱码,用System.Web.HttpUtility.UrlDecode();解码 ,还是出现乱码,困老了我好长时间,终于在google上找到了解决办法。

解决方案:

HttpUtility.ParseQueryString(Request.Url.Query, System.Text.Encoding.GetEncoding("GB2312"))["message"];--其中message就是你接收的参数.


于是了解到UrlEncode是基于页面的编码方式,那么前期保存到的数据时基于gb2312来UrlEncode的,所以在utf8页面解码时要指定用gb2312的方式来解码。否则会默认使用页面的编码方式来解码,不乱码才怪呢。。。。。。

具体做法:

System.Web.HttpUtility.UrlDecode("需解码的GB2312编码字符串",Encoding.GetEncoding("gb2312"));

posted @ 2011-12-07 10:35  ^_^肥仔John  阅读(1377)  评论(0编辑  收藏  举报