当前位置:  开发笔记 > 编程语言 > 正文

UrlEncode - Javascript与C#

如何解决《UrlEncode-Javascript与C#》经验,为你挑选了3个好方法。

我有一个需要一些参数的URL.这些参数的值可以是重音字符,所以我绝对需要对它们进行UrlEncode.奇怪的是,我发现行为或Javascript和.NET之间存在差异.

让我们假装我尝试将"éléphant"这个词用于UrlEncode.在JavaScript中(根据此WebSite:http://www.albionresearch.com/misc/urlencode.php),我得到以下内容:%E9l%E9phant.这对我来说是正确的.但是,在这个调用的.NET中(System.Web.HttpUtility.UrlEncode("éléphant"))我得到"%c3%a9l%c3%a9phant".怎么了?我错过了什么?如果我想在.NET中获得%E9l%E9phant,我该怎么办?

谢谢!



1> Sciolist..:

System.Web.HttpUtility.UrlEncode将使用UTF8(我认为..)作为其默认编码器,您可以通过指定一个来更改它.

System.Web.HttpUtility.UrlEncode("éléphant", Encoding.Default); // %e9l%e9phant

虽然可能最好指定实际的代码页或不是,而不是依赖于操作系统默认值.



2> bobince..:

在JavaScript中(根据此WebSite:http://www.albionresearch.com/misc/urlencode.php),我得到以下内容:%E9l%E9phant.

那页错了.JavaScript也使用UTF-8,默认情况下是.NET.亲自尝试一下:

javascript:alert(encodeURIComponent('éléphant'))
%C3%A9l%C3%A9phant

今天的网址是UTF-8.不要再尝试使用cp1252了.UTF-8是你的朋友.相信UTF-8!



3> EndangeredMa..:

参考:

js:       %E9 l     %E9 phant
.net: %c3 %a9 l %c3 %a9 phant

不同之处在于,一个是UTF-8URL编码,而另一个是ANSIURL编码.

在.NET中,尝试:

Dim a As String = System.Web.HttpUtility.UrlEncode( _
    "éléphant", _
    Text.Encoding.Default)

我明白了

    %e9 l     %e9 phant

结果是.这与您为JavaScript提供的字符串匹配,但Hex字符大小写除外.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有