HttpUtility.UrlEncode .net中的UrlEncode

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HttpUtility.UrlEncode .net中的UrlEncode相关的知识,希望对你有一定的参考价值。

HttpUtility.UrlEncode .net中的UrlEncode这类型的方法内部是怎么实现的,反IL看不到源码。
可能我没说清楚.
这样: "\\u676D\\u5DDE" 对应的是 "杭州"
.\\u676D\\u5DDE不是"\u676D\u5DDE"
"\u676D\u5DDE".ToArray().Length=2。
我想了解的是如何把"\\u676D\\u5DDE".ToArray().Length=14; \\u676D\\u5DDE这种 怎么转换成"杭州"两个字。。。。。。注意不是吧"\u676D\u5DDE"这个转换成"杭州".

用 reflector反编译。。。只列出一种,不列出那些重载的函数了。

publicstaticstringUrlEncode(string str)

if (str == null)

returnnull;

returnUrlEncode(str, Encoding.UTF8);


publicstaticstringUrlEncode(string str, Encoding e)

if (str == null)

returnnull;

returnEncoding.ASCII.GetString(UrlEncodeToBytes(str, e));
追问

可能我没说清楚.
这样: "\\u676D\\u5DDE" 对应的是 "杭州"
.\\u676D\\u5DDE不是"\u676D\u5DDE"
"\u676D\u5DDE".ToArray().Length=2。
我想了解的是如何把"\\u676D\\u5DDE".ToArray().Length=14; \\u676D\\u5DDE这种 怎么转换成"杭州"两个字。。。。。。注意不是吧"\u676D\u5DDE"这个转换成"杭州".

追答

你的意思是字符串里面有转义符号吧。“\\u676D\\u5DDE”解码以后本来就不是“杭州”两个字,当然不能解码成杭州了。如果你能确定你要处理的数据都是这种形式的,你可以调用string.replace("\\","\")方法,把里面的双斜线换成单斜线以后再解码。

参考技术A GYGYGYGYGYGYGYGY

以上是关于HttpUtility.UrlEncode .net中的UrlEncode的主要内容,如果未能解决你的问题,请参考以下文章

Dynamics365 Sandbox中部署Plugin不支持HttpUtility.UrlEncode

System.Web.HttpUtility.UrlEncode/UrlDecode ASP.NET 5 的替换

HttpUtility.UrlEncode .net中的UrlEncode

asp及asp.net的urlencode问题

通过“HttpUtility.UrlEncode”和“Uri.EscapeDataString”在 GET API 请求中编码撇号会出错

Owin的URL编码怎么搞?以前都是HttpUtility.UrlEncode之类的,现在连system.web都没了,肿么办?