老虎下山

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

今天在做一个小程序发现C#的System.Web.HttpUtility.UrlEncode函数产生的编码和我们正常使用的有出入,如:

用System.Web.HttpUtility.UrlEncode产生的编码如下

南京:%e5%8d%97%e4%ba%ac

而正常的我们期待的结果是:%C4%CF%BE%A9

比较后发现两者前者认为一个汉字3个字节,而后者则是两个字节,这下恍然大悟原来在C#中如果直接用System.Web.HttpUtility.UrlEncode("南京")则程序默认使用UTF-8编码处理汉字。

 

解决方法:

System.Web.HttpUtility.UrlEncode("南京",Encoding.GetEncoding("GB2312"))

加一个参数即可!

posted on 2012-07-24 16:18  老虎下山  阅读(364)  评论(0编辑  收藏  举报