当前位置: 编程技术>.net/c#/asp.net
浏览器自动转换URL编码产生乱码问题的解决办法
来源: 互联网 发布时间:2014-08-30
本文导语: 如果网址中含有汉字,浏览器会自动将其转换成URL编码,而在接收端,它又自动转换回来。 大部分时候都没什么问题,但有时候就很讨厌。因为生成这种URL编码,编码时的字符集和解码字符集不一定相同,比如编码时用GB2312,...
如果网址中含有汉字,浏览器会自动将其转换成URL编码,而在接收端,它又自动转换回来。
大部分时候都没什么问题,但有时候就很讨厌。因为生成这种URL编码,编码时的字符集和解码字符集不一定相同,比如编码时用GB2312,解码用UTF-8,就出现乱码。
这个时候,提取到的参数,自然就乱。
解决办法:不要用Request.QueryString来提取,改用Request.RawUrl获取。后者是原始URL,没有自动解码的。自己获取,自己处理。
代码如下:
//scode = Request.QueryString["word"];
int p = Request.RawUrl .IndexOf("word=");
string scode = Request.RawUrl.Substring(p + 5);
int p = Request.RawUrl .IndexOf("word=");
string scode = Request.RawUrl.Substring(p + 5);