ShowParm.aspx:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
地址栏中直接输入:
http://localhost:6391/WEB/PARM/ShowParm.aspx?parm=中文参数
Request.QueryString["parm"].ToString()获取到的是乱码。
当点击页面中的一个服务器端按钮回发后,地址栏变为:
http://localhost:6391/WEB/PARM/ShowParm.aspx?parm=%ufffd%ufffd%ufffd%u0132%ufffd%ufffd%ufffd
用javascript可以获取地址栏中的中文参数的,但我想知道怎么能让Request.QueryString["parm"]也能获取到这个参数,而不是乱码。
回发一下页面后,地址栏中的中文参数用了哪种编码?这其中的原理是什么?本人乃初学者,望哪位高人给指点一下!谢谢。
就这么多分了,全给了吧,希望高人不要嫌少。
直接给它传中文参数,显示不出来的真正原因是什么。
实际做的时候,是会编码之后再请求的。
贰壹肆伍拐
说的内容我之前已经了解。我想了解是原理方面的,能解释一下么。
不是加密解密,是编码解码。不要算法,说一下用的是哪种码就行了,大致流程讲一下就OK了。
本人初学者,对这方面所知甚少,我的理解是,把URL回发到服务器的时候,应该是把URL给编码了的。好象有什么 UTF-8,GB2312什么的,不是太懂。
服务器端在解析这个URL的时候,解码方法和编码时不一致,所以导致了参数乱码,不能正确的解析出来。
如果用javascript把URL中的参数给escape的话,服务器读Request.QueryString["parm"]就不会有乱码了。
不知道是不是这回事?
能把这个过程稍讲一下吗?
感谢 贰壹肆伍捌 的热心回答!!!
IE -> 工具 -> Internet选项 -> 高级 -> 总是以 UTF-8 发送(需要重启动)(在最下面)
回发的时候,是用了UTF-8编码格式对URL进行编码了的。
算了给分吧,自已再慢慢找资料看吧。
谢谢贰壹肆伍捌兄。