有时我们会通过QueryString来传参(就是在url中传参),但是你会发现,汉字会出现乱码或者最后一个汉字会不知所以的丢失。在网上查找,主要有以下2种解决方法:
1 在asp.net中可以用Server.UrlEncode(参数)将参数加密,然后在QueryString传递,在接受端跟平常一样将参数接受下来,然后用Server.UrlDecode(参数)将参数解密,就OK了。在javascript中可以用encodeurl和decodeurl来加解密。
写Url的时候使用Server.UrlEncode方法
如你的Url:
http://'..../test.aspx?nf=2003&bmmc=代数
改成:
http://'..../test.aspx?nf=2003&bmmc='<%# Server.UrlEncode("代数") %>'
然后在使用参数的网页加入:
Request.QueryString("nf")
Server.UrlDecode(Request.QueryString("bmmc"))
就行了,我就用这个方法传递中文的,字数仅仅受Url的长度限制。
2. 在Web Config中添加下列:<globalization requestEncoding="gb2312" responseEncoding="gb2312" />
<
system.web
>
<!--
设置 compilation debug = " true " 将调试符号插入
已编译的页面中。但由于这会
影响性能,因此只在开发过程中将此值
设置为 true 。
-->
< globalization requestEncoding = " gb2312 " responseEncoding = " gb2312 " />
<!--
设置 compilation debug = " true " 将调试符号插入
已编译的页面中。但由于这会
影响性能,因此只在开发过程中将此值
设置为 true 。
-->
< globalization requestEncoding = " gb2312 " responseEncoding = " gb2312 " />