今天突然发现Server.UrlEncode和HttpUtility.UrlEncode对字符编码输出不一样。
string str = "皮革";
Response.Write(Server.UrlEncode(str));
Response.Write("<br/>");
Response.Write(System.Web.HttpUtility.UrlEncode(str));
输出显示
%c6%a4%b8%ef
%e7%9a%ae%e9%9d%a9
在网上搜索了下,原来是编码问题。HttpUtility.UrlEncode默认是以UTF8进行编码,而Server.UrlEncode则以默认的编码进行编码。
指定编码后就一样了。
string str = "皮革";
Response.Write(Server.UrlEncode(str));
Response.Write("<br/>");
Response.Write(System.Web.HttpUtility.UrlEncode(str, Encoding.GetEncoding("GB2312")));
标签:URL编码



