首页 新闻 会员 周边

html页面中的url含有中文,需要编码吗?

0
悬赏园豆:20 [待解决问题]

我是这样理解的:

如有中文字符,最好保证html页面中的url被编码为utf-8。原因是未编码的url在ie下请求,url不变,而在ff下请求,url会自动编码为utf-8。这种由于浏览器的原因,会导致发送到服务器的url不一致,服务器会分成两种情况来处理。

但是现实中,我看百度的页面,并未对页面中的url进行编码,例如:http://jipiao.youa.baidu.com/ 页面中的机票链接(不是搜索后的链接)。

问题补充: 在IE中请求下面两个url,返回了一样的结果,这是为什么?服务器端为什么能处理两种情况?难道在服务器端 有一个判断吗:编码过的就进行解码,没有编码的就不再解码。 1)http://jipiao.youa.baidu.com/airticket/0/flight/0/query?trip_type=1&fcity=%B1%B1%BE%A9&tcity=%D6%D8%C7%EC&date_ft=2010-09-08 2)http://jipiao.youa.baidu.com/airticket/0/flight/0/query?trip_type=1&fcity=北京&tcity=重庆&date_ft=2010-09-08
星晴的主页 星晴 | 初学一级 | 园豆:90
提问于:2010-09-06 17:11
< >
分享
所有回答(3)
0

是好是要做的。

Astar | 园豆:40805 (高人七级) | 2010-09-06 18:14
0

编码最好的啦。

Asp.net中使用EncodeUrl方法。

Ropean | 园豆:121 (初学一级) | 2010-09-07 07:50
0

楼主提供的页面,提交参数时是编译过的。
有一种方式,如果是aspx后台代码中通过js传递中文参数,此时不需要强制编码,服务器端也可以识别。

http://www.cnblogs.com/downmoon/archive/2007/12/30/1021140.html

邀月 | 园豆:25475 (高人七级) | 2010-09-07 08:14
我还是没有完全明白,请看一下【问题补充】。
支持(0) 反对(0) 星晴 | 园豆:90 (初学一级) | 2010-09-07 10:17
@星晴:通常服务器接受端是固定编码的,因为它知道调用方的编码。后台代码中调用JS的url可以使用中文参数,是因为它有一个Post进行服务端交互时自动处理了编码,而纯粹的js传地址默认无此过程,需要额外转换。
支持(0) 反对(0) 邀月 | 园豆:25475 (高人七级) | 2010-09-07 10:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册