做中文站点,在url中使用中文参数太正常了,比如:http://website/list.asp
?keyword=关键字
在理想状态下,是不需要做任何的处理,list.aspx页面可以接收到“关键字”这个中文参数,但相当一部分情况下,会得到乱码,所以为了安全保险起见,我们还是要对中文字符作一下编码,编码很简单
通常情况下,list.aspx页面会对传入的已经编码的参数自动处理(用debug跟踪调试的时候可以看到),但不能保证所有人的程序都会这样,我自己就遇到接收过来还是类似:%uXXXX这样的字符串,所以最安全的方法,就是我们利用.net提供的方法,解码一下。
在理想状态下,是不需要做任何的处理,list.aspx页面可以接收到“关键字”这个中文参数,但相当一部分情况下,会得到乱码,所以为了安全保险起见,我们还是要对中文字符作一下编码,编码很简单
var
s1
=
'中文参数';
var s2 = escape( s1 );
alert( s2 );
var s2 = escape( s1 );
alert( s2 );
通常情况下,list.aspx页面会对传入的已经编码的参数自动处理(用debug跟踪调试的时候可以看到),但不能保证所有人的程序都会这样,我自己就遇到接收过来还是类似:%uXXXX这样的字符串,所以最安全的方法,就是我们利用.net提供的方法,解码一下。
string
KeyWorld
=
Server.UrlDecode( Request.QueryString[
"
keyword
"
] );
.net编码配置
1、设置web.config文件。(我不喜欢设置成这样)
<
system
.web
>
<
globalization
requestEncoding
="gb2312"
responseEncoding
="gb2312"
culture
="zh-CN"
fileEncoding
="gb2312"
/>
</
system.web
>
或者:
aspx文件中:
<
meta
http-equiv
="Content-Type"
content
="text/html; charset=gb2312"
> 2、传递中文之前,将要传递的中文参数进行编码,在接收时再进行解码。
>> 进行传递
string
Name
=
"
中文参数
"
;
Response.Redirect(
"
B.aspx?Name=
"
+
Server.UrlEncode(Name)); >> 进行接收
string
Name
=
Request.QueryString[
"
Name
"
];
Response.Write(Server.UrlDecode(Name)); 或者:
.net编码配置
1、设置web.config文件。(我不喜欢设置成这样)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
aspx文件中:
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
>> 进行传递
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)