Tag: urlencode

C#Uri.EscapeDatastring()等效于Java

我们已经实现了一个HTTP身份validation连接,使用Uri.EscapeDataString()在C#中编码。 我正在尝试创建一个与C#版本完全相同的java测试应用程序,但URLEncoder.encode(string, “UTF-8”)添加的额外编码与C# Uri.EscapeDataString()不完全相同Uri.EscapeDataString()函数。 什么是等效的编码方法?

如何正确使用UrlEncode和Decode

所以我有一个文件,我上传到azure blob存储: C:\ test文件夹\ A + B \ testfile.txt 和两个扩展方法,帮助编码我的路径,以确保它被赋予有效的azure存储blob名称 public static string AsUriPath(this string filePath) { return System.Web.HttpUtility.UrlPathEncode(filePath.Replace(‘\\’, ‘/’)); } public static string AsFilePath(this string uriPath) { return System.Web.HttpUtility.UrlDecode(uriPath.Replace(‘/’, ‘\\’)); } 因此,当上传文件时,我将其编码为AsUriPath并获取名称test%20folder\A+B\testfile.txt但是当我尝试将其作为文件路径返回时,我得到test folder\AB\testfile.txt ,这显然不是相同( +已被删除) 使用UrlEncode和UrlDecode确保您获得与最初编码相同的信息的正确方法是什么?

URL编码ASCII / UTF16字符

我正在尝试对一些字符串进行URL编码,但是我对.Net框架提供的方法存在问题。 例如,我正在尝试包含’â’字符的编码字符串。 例如,根据w3schools ,我希望这个特征被编码为’%E2’(我必须调用的PHP系统也期望这个……)。 我尝试使用这些方法: System.Web.HttpUtility.UrlEncode(“â”); System.Web.HttpUtility.UrlPathEncode(“â”); Uri.EscapeUriString(“â”); Uri.EscapeDataString(“â”); 但是,它们都将此字符编码为:%C3%A2 我想这与.Net中的字符串是UTF-16编码的事实有关。 所以为了避免这个问题,我可以写这个例子: “%” + ((int)character).ToString(“X”) 但是,我想知道框架是否已经有内置方法(我在这里或其他地方找不到任何答案,为什么我的角色以这种方式编码)?

将url从utf-8编码重新编码为iso-8859-1编码

我有文件://链接非英文字符,这些字符是以UTF-8编写的UrlEncoded。 要使这些链接在浏览器中工作,我必须重新编码它们。 file://development/H%C3%A5ndplukket.doc 变 file://development/H%e5ndplukket.doc 我有以下代码可行: public string ReEncodeUrl(string url) { Encoding enc = Encoding.GetEncoding(“iso-8859-1”); string[] parts = url.Split(‘/’); for (int i = 1; i < parts.Length; i++) { parts[i] = HttpUtility.UrlDecode(parts[i]); // Decode to string parts[i] = HttpUtility.UrlEncode(parts[i], enc); // Re-encode to latin1 parts[i] = parts[i].Replace('+', ' '); // Change + to [space] } […]

HttpUtility.ParseQueryString无需解码特殊字符

Uri uri = new Uri(redirectionUrl); NameValueCollection col = HttpUtility.ParseQueryString(uri.Query) uri.Query已被解码 – 所以有什么方法可以防止ParseQueryString再次解码它? 除此之外 – 是否有另一种方法从Uri检索名称值集合而不修改任何组件?

从Server.UrlEncode获取字符串为大写

我希望它的输出为大写。 这是我在Server.UrlEncode(“http://”) : http%3a%2f%2f 但是我需要: http%3A%2F%2F C#中有内置的解决方案吗? 编码的url应作为签名基本字符串(输入到签名算法)来创建摘要(哈希)。 然后哈希将由其他系统(java,php等)validation,因此他们需要首先通过签名重建来重新创建哈希。

为什么我在Visual Studio 2010中找不到或使用UrlEncode?

我有一个字符串,我想编码为标准的URL格式。 从我发现的,我应该能够通过httpUtility.urlEncode方法做到这一点,但我似乎没有那个可用。 我添加了“使用”对System.Web和System.Net引用无济于事。 我还看到了其他变种中对server.urlEncode的其他引用,但我没有看到任何方法。 我在Visual Studio 2010中使用了最新版本的C#。在这个版本中,该方法被称为不同的东西,隐藏在其他地方,还是我完全脱离基础?

为什么在Visual C#2008中不存在提供命名空间名称的System.Web.HttpUtility.UrlEncode?

我正在尝试使用HttpUtility.UrlEncode()方法对URL进行编码,为什么我会得到 名称空间’System.Web’中不存在类型或命名空间名称’HttpUtility’(您是否缺少程序集引用?) 错误? 我正在使用Visual C#2008,Express Edition。 我正在使用的代码是简单的: using System; using System.Text; using System.Windows.Forms; using System.Net; using System.IO; using System.Web; namespace Lincr { public partial class frmMain : Form { public frmMain() { InitializeComponent(); } private void cmdShorten_Click(object sender, EventArgs e) { WebRequest wrURL; Stream objStream; wrURL = WebRequest.Create(“http://lin.cr?l=” + System.Web.HttpUtility.UrlEncode(txtURL.Text) + “&mode=api&full=1”); objStream = wrURL.GetResponse().GetResponseStream(); […]

使用HttpWebRequest在POST中使用C#Escape Plus Sign(+)

我在发送POST数据时遇到问题,包括密码字段中的“+”字符, string postData = String.Format(“username={0}&password={1}”, “anyname”, “+13Gt2”); 我正在使用HttpWebRequest和webbrowser来查看结果,当我尝试使用HttpWebRequest从我的C#WinForms 登录到POST数据到网站时,它告诉我密码不正确。 (在源代码[richTexbox1]和webBrowser1中)。 尝试使用我的另一个帐户,它不包含’+’字符,它允许我正确登录(使用字节数组并将其写入流) byte[] byteArray = Encoding.ASCII.GetBytes(postData); //get the data request.Method = “POST”; request.Accept = “text/html”; request.ContentType = “application/x-www-form-urlencoded”; request.ContentLength = byteArray.Length; Stream newStream = request.GetRequestStream(); //open connection newStream.Write(byteArray, 0, byteArray.Length); // Send the data. newStream.Close(); //this works well if user does not includes symbols 从这个问题我发现HttpUtility.UrlEncode()是逃避非法字符的解决方案,但我无法找到如何正确使用它,我的问题是,在使用urlEncode()对我的POST数据进行url编码之后我该怎么办?正确地将数据发送给我的请求 ? […]

UrlEncode – Javascript与C#

我有一个需要一些参数的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,我该怎么办? 谢谢!