.System.Web.HttpUtility.UrlEncode

今天在做一个小程序发现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"))

加一个参数即可!

原文地址:https://www.cnblogs.com/maijin/p/2844609.html