WAP编码问题(二)

今年五一出现的WAP编码问题,和去年出现的雷同,只是到目前还没有找到正确的解码方式。到目前追踪下来的结果发现将“川”从客户端转到服务端成了“Y]”(PS:但这个追踪是有错误的,下面我会谈到在追踪过程中,发现的一些.NET的处理方式)。

我在机器上做了一个实验:(k=中国)

PageA 发送按gb2312编码的 k= %d6%d0%b9%fa

PageB 接收到k 按默认的UTF-8解码。很自然结果就是乱码:"й"

这是我特意制造的乱码,但让我奇怪的是.NET的Request中几个获得Query参数的结果却是不同的。

querystring

从1、2、3中方法中看k的三种不同的值,

1:“k= %d6%d0%b9%fa”是客户端传输过来的编码值。

2:“k=%u0439”目前不清楚如何得到这个值(PS:有知道的请告知一下,Reflector也懒得看啦)。

3:"k=й" 就是通过Server.UrlDeCode的错误解码结果。

这说明了什么呢

1:我们平时使用的Request.QueryString["k"]内部已经对URL参数进行了解码,这就是为什么平时我们多用Server.UrlEncode对参数进行编码,而很少显示的去调用Server.UrlDeCode对参数进行解码。

2:要获取更底层的参数形式请使用Request.Url.OriginalString Request.QueryString.ToString() (PS:比较郁闷这个是.NET2.0的,OriginalString 是2.0新增的。在.NET1.1 请使用这个:Request.Url.AbsoluteUri)

3:我要改写跟踪代码,因为我获得的“Y]”已经是被MS处理的乱码了。

问题先跟踪到这,目前还没有好的解决办法。

Google 标记: WAP编码, WAP乱码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值