itRef.cn技术参考网站

当前位置: 主页 > windows > .net >

System.Web.HttpUtility.UrlEncode编码长度的问题

时间:2012-02-22 10:29来源:未知 作者:wiwi 点击:
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函数产生的编码和我们正常使用的有出入,如:

用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"))

参考:
UrlEncode(String, Encoding)   Encodes a URL string using the specified encoding object.         

 
(责任编辑:wiwi) 转载请注明 来源于itRef.cn技术参考网站:
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容