首页 新闻 会员 周边

用asp.net 的Requset获取中文参数时出现乱码

0
悬赏园豆:10 [已解决问题] 解决于 2011-11-19 14:17

用了<globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8"/>

用UrlDecode(Request.QueryString["trafficcode"].ToString()进行解码都不行,主要目的就是把中文参数转换成utf-8。请高人指路,谢谢

缘鬼才的主页 缘鬼才 | 初学一级 | 园豆:51
提问于:2011-10-25 00:59
< >
分享
最佳答案
0

1)给你一个方法判断字符的字符集:http://www.iwms.net/n1565c13.aspx

2)转换编码的步骤
//获取参数里的值

byte[] bytes = System.Text.Encoding.Default.GetBytes(Request.QueryString["trafficcode"]);

//将参数的值转换成指定字符集(你可以尝试gb2312/utf-8/gbk等等)
string resStr = System.Text.Encoding.GetEncoding("gb2312").GetString(bytes)
3)Request.QueryString["trafficcode"] 这个不需要再ToString()了.
   一个是本身它已经是string类型的了,另外一个如果恰好取不到值,就会出现空指针异常.

收获园豆:10
三阶 | 小虾三级 |园豆:1436 | 2011-10-27 19:35
其他回答(4)
0

页面的编码是否是UTF-8的,不是的话可能会有问题

IE浏览器中设置的地方也有UTF-8项的设置,是否修改过?

2012 | 园豆:21230 (高人七级) | 2011-10-25 08:09
0

不要传递中文参数。如果一定要中文的话,用Escape(js里的)转一下。然后再传递。

迷路中的路人甲 | 园豆:93 (初学一级) | 2011-10-25 08:50

用中文作为参数那是必须的,Js怎么处理?

支持(0) 反对(0) 缘鬼才 | 园豆:51 (初学一级) | 2011-10-26 16:15
0

如果从传来的页面也是urf-8编码是不需要再UrlDecode的,把传入的参数用utf-8编码传输就可以了

慧☆星 | 园豆:5640 (大侠五级) | 2011-10-25 09:14
0

先对中文字符串进行编码Server.HtmlEncode()

然后在解码试试看,不过最好不用中文作为参数

共谱一曲 | 园豆:36 (初学一级) | 2011-10-25 11:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册