转换为 URL 编码
Posted
技术标签:
【中文标题】转换为 URL 编码【英文标题】:Convert to URL encode 【发布时间】:2015-04-27 01:33:12 【问题描述】:我不太确定这个问题的主题是否恰当。问题来了:
我正在阅读页面内容以获取对 URL 的引用。内容如下:
<form method="get" action="/errors/validateCaptcha" name="">
<input type=hidden name="amzn" value="VGNBhB9ceCBo2YWErppFwA==" /><input type=hidden name="amzn-r" value="/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=1573624098" /><input type=hidden name="amzn-pt" value="NoPageType" />
我正在尝试阅读字段amzn-r
。但是,正如您所见,它包含&#047;
、&#061;
等字符,这些字符转换为%2F
和%3D
。通过代码执行此操作的任何方式 - 标准 URL 编码都无法更改它,因为我猜测它已经编码。我正在使用 .Net。
【问题讨论】:
【参考方案1】:要完成 Arunster 的回答,您需要同时使用 htmlDecode()
和 UnescapeDataString()
将其转换为直接 URL。您不需要通过 System.Web
命名空间调用它,因为这需要您将 System.Web 引用包含到您的项目中,这在桌面应用程序中默认不可用。相反,您可以使用以下替代方法:
string PlainURL = System.Uri.UnescapeDataString( System.Net.WebUtility.HtmlDecode("/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=1573624098"))
【讨论】:
【参考方案2】:您可以使用 System.Web 库中提供的HttpUtility.HtmlDecode 方法。 用法是传递字符串来解码值。
所以,在你的情况下:
HttpUtility.HtmlDecode("&#047;s&#047;ref&#061;nb_sb_noss?url&#061;search&#045;alias&#037;3Daps&amp;field&#045;keywords&#061;1573624098");
产量:
/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=1573624098
我猜这就是你要找的。p>
【讨论】:
谢谢,是的,这就是我要找的。span>以上是关于转换为 URL 编码的主要内容,如果未能解决你的问题,请参考以下文章
浏览器端将语音转换为URL格式的字符串(base64 位编码)
如何将 protobuf 对象转换为 ByteArray 并在 Swift 中使用 Base64 URL_SAFE 进行编码?