JS拼成的地址里的中文,和直接在地址栏中输入的中文,Request.QueryString到的结果是不一样的,
可能是JS对中文作了编码(准确原因是两次的编码方式不一样,JS用的是utf-8,地址栏用的是GB2312)
<input type="text" name="ss" id="sss" /><input type="submit" name="sss" onclick="location.href='aa.aspx?a='+document.getElementById('sss').value;return false;"/>
在http传输数据时,url只能使用assic字符集
某些特殊字符也需要编码,方式为用%加上该字符在ISO-8859-1 character-set字符集中对应的两个16进制数。即在其assic码的16进制表示前加%。
例如:
对于汉字,则是将汉字编码后,在每个字节前加%
地址栏直接输入的中文:将汉字编码(GB2312)后不作处理
Post请求:使用的编码方式为utf-8,每个字节前加%
get空格转换成了%20
Post空格转换成了+