上午在弄yahoo的天气预报
http://weather.cn.yahoo.com/index.html
大家在这个链接中看到的只是当天的天气
在这个链接中看到的是三天的天气,要处理的就是这个页面
http://weather.cn.yahoo.com/area.html?city=城市
直接在浏览器中输入地址返回的结果是正确的
但是
如果直接在程序中去处理形如这样的页面,得到的结果就是错误的
http://weather.cn.yahoo.com/area.html?city=武汉
为什么呢?
就是没有对“武汉”进行url编码
不管是asp还是asp.net中都是用Server.UrlEnCode()来处理
于是在处理过程中很自然的:
Server.UrlEnCode("武汉")
但返回的结果还是错误.
试过多次还是一样的错误

会不会是通过UrlEncode后出现问题?
于是在.net环境下单独对"武汉"作了UrlEncode的转换
然后在asp环境下也对“武汉”作了UrlEnCode的转换
结果在这二种环境下产生的字符串完全不同!
为什么会这样?


ASP.net 中的 Server.UrlEncode 默认是按照 UTF-8 编码方式进行处理的。而ASP中是按照本地设置编码方式进行处理的。

知道这个以后就好办了
HttpUtility.UrlEncode("武汉",Encoding.Default)
这样就正确了!

Write a comment:



(将显示你的Gravatar图标)  



[b][/b] - [i][/i] - [u][/u]- [quote][/quote]

:-/ ^_^ :d :o :kiss: :) :p :se: [yeah] :( :love: :han: :up: :cry: :zzz: o_o

暂时停止交换链接.

评论提交有问题?