我从服务器收到了一个url编码字符串,例如http%3a%2f%2fstatic.csbew.com%2f%2fcreative%2fpd_test_pptv%2f320x60.png
我想将它解码为普通的url字符串.我发现这个方法,但这不适用于紧凑的框架.
string url = System.Web.HttpUtility.UrlDecode(strURL, Encoding.GetEncoding("GB2312"));
Run Code Online (Sandbox Code Playgroud)
有关如何解码字符串的任何想法?
这是一个艰难的:
我正在开发一个大部分内容都是日语的网站。
但考虑这个网址:
http://www.stackoverflow.com/??/????URL?????
大多数 URL 解析器,包括 stackoverflow 的,不知道在哪里分隔包含日语的 URL。不好。
我还没有检查过其他浏览器,但谷歌浏览器会用日语显示 URL 解码的日语 URL——当你复制 URL 时,它会对其进行 URL 编码:
这是正确的做法,但并不是最友好的。所以,我想,我会让内容提供者只输入简短的英语 slug,就像这样:
http://www.stackoverflow.com/questions/what-to-do-with-japanese-urls
惊人的。但这有两个问题:
关于最佳行动方案的任何想法?:D
在http://alx3apps.appspot.com/jsonrpc_example/的示例中,当我单击提交按钮时,我注意到(通过使用 Firebug)我的浏览器提交了源代码:
{"params":["Hello ","Python!"],"method":"concat","id":1}
Run Code Online (Sandbox Code Playgroud)
它不是发布参数(例如json=[encoded string from above]),而是发布具有上述值的原始字符串。
是否有一种广泛接受的方法可以通过 GET 请求复制它,或者我是否只需要对相同的字符串进行 urlencode 并将其包含为http://www.example.com/?json=%7b%22params%22%3a%5b%22Hello+%22%2c%22Python!%22%5d%2c%22method%22%3a%22concat%22%2c%22id%22%3a1%7d?我知道一些较旧的浏览器无法处理超过 250 个字符的 URI,但我对此表示同意。
只是想在我的网站上做一些安全措施,并试图找出确保身份证的最佳途径.
示例: http://localhost/page.php?id = 90 TO: http:// localhost/share/22349234987sdsdf9sdf87423498asf9
我正在使用HTACCESS来做共享部分.但是想隐藏'90'并试图阻止任何人只是添加随机数来尝试接收不同的响应.
有关如何创建这样的东西的任何想法,或者是否存在适用于实现的东西?
安全是一个因素,所以只是试图找到最好的解决方案......
我检查php.net并阅读了一些有关如何urlencode( )工作的例子,但不知何故,我无法做到正确.有人可以帮我一把吗?
这将是一个很好的例子,所以希望我的简短例子是有意义的.
我有一个调用的页面2.php,它被调用以显示.txt选择的文件的一些内容1.php.
我被告知要建立一个链接,3.php链接应该看起来像/3?filename=a.txt
文件名作为GET参数名称和确保GET参数值正在urlencoded使用该urlencode( )功能.
但我很困惑应该如何以及在哪里urlencode()使其发挥作用.
我会在这里粘贴我的2.php代码...我简化了一些代码......
<?php
$fileContents = file("./aaa/" . $_GET["course"] . ".txt");
echo "<table border=\"1\">";
foreach($fileContents as $row)
{
echo "<tr>";
$contents = preg_split("/,/", $row);
foreach($contents as $eachline)
{
echo "<td>";
if(!(preg_match("/@/", $eachline)))
{
echo trim(ucfirst($eachline));
}
else
{
echo trim(strtolower($eachline));
}
echo "</td>";
}
echo "</tr>";
}
echo "</table>";
echo "<a …Run Code Online (Sandbox Code Playgroud) 为什么在使用http_build_query函数构建查询字符串时,它会对[]值外的方括号进行 urlencode ,如何摆脱它?
$query = array("var" => array("foo" => "value", "bar" => "encodedBracket["));
$queryString = http_build_query($query, "", "&");
var_dump($queryString);
var_dump("urldecoded: " . urldecode($queryString));
Run Code Online (Sandbox Code Playgroud)
输出:
var%5Bfoo%5D=value&var%5Bbar%5D=encodedBracket%5B
urldecoded: var[foo]=value&var[bar]=encodedBracket[
Run Code Online (Sandbox Code Playgroud)
该函数在输出的第一行正确地对 a [inencodedBracket[进行了urlencoded ,但是在var[foo]=and 中编码方括号的原因是什么var[bar]=?如您所见, urldecoding 字符串也解码了值中的保留字符,encodedBracket%5B应该保持原样,以便查询字符串正确而不是encodedBracket[.
根据第 2.2 节统一资源标识符 (URI) 的保留字符:通用语法
URI 包括由“保留”集中的字符分隔的组件和子组件。这些字符被称为“保留”,因为它们可能(或可能不)被通用语法、每个方案特定的语法或 URI 解引用算法的实现特定的语法定义为定界符。如果 URI 组件的数据与作为分隔符的保留字符的用途发生冲突,则必须在形成 URI 之前对冲突数据进行百分比编码。
保留 = gen-delims / sub-delims
gen-delims = ":" / "/" / "?" / "#" / "[" / …
我使用Python 3和请求模块/库来查询REST服务.
似乎默认情况下请求urllib.parse.quote_plus()用于urlencoding,即空格转换为+.
但是我查询的REST服务误解了这一点and.所以我需要将空格编码为%20,即urllib.parse.quote()改为使用.
有没有一种简单的方法来处理请求?我在文档中找不到任何选项.
在使用Xcode 9 beta 2的Swift 3.x中,使用addingPercentEncoding会产生意想不到的结果.CharacterSet.urlPathAllowed总是包含":",所以根据定义addingPercentEncoding,它永远不应该逃脱它.然而,使用此代码:
// always true
print(CharacterSet.urlPathAllowed.contains(":"))
let myString = "info:hello world"
let escapedString = myString.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed)!
print(escapedString)
Run Code Online (Sandbox Code Playgroud)
我得到了那些结果:
真实
信息%3Ahello%20world
真实
信息:你好%20world
是否有任何解决方法来获得addingPercentEncoding正确尊重给定的工作实现allowedCharacters?
什么是实现以下目的的正确URL格式:
什么不起作用:
let encoded = "https://www.google.com/maps/dir/?api=1&destination=-20.021999%2C57.579075"
let url = URL(string: encoded)!
UIApplication.shared.open(url, options: [:], completionHandler: nil)
Run Code Online (Sandbox Code Playgroud)
另外,我尝试使用addingPercentEncoding方法对URL进行编码:
let string = "https://www.google.com/maps/dir/?api=1&destination=\(lat),\(long)"
let encoded = string.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
let url = URL(string: encoded)!
UIApplication.shared.open(url, options: [:], completionHandler: nil)
Run Code Online (Sandbox Code Playgroud)
在两种情况下,结果都是相同的:“不支持的链接-Google Maps无法打开此链接”

另一方面,如果我删除Google Maps应用程序,或在模拟器中尝试相同的代码,则一切工作正常,并且可以完全达到我想要的结果:

为什么同一链接可以成功启动“ Web”应用程序,但是无法被本机应用程序识别?
有问题的字串:
https://www.google.com/maps/dir/?api=1&destination=-20.021999,57.579075
我要遵循的指南:Google Maps Guide
google-maps urlencode deep-linking swift ios-universal-links
我有一个.avi文件,该文件位于服务器的文件夹中。该文件夹的名称带有重音符号。关键是,当我将该文件放入标签中时,它显示了一个txt文件(avi文件编码,我认为),这显然是错误的。它只是在具有https协议的Internet Explorer(至少为版本11)中发生。
对于mp4文件,在“非重音文件夹”中的avi文件,在http协议中都没有,在我直接在浏览器中粘贴地址时(无论是Chrome还是Firefox)都没有这种情况。
示例来说明我要说的内容:
<a href="https://myserver.com/myAccentédFolder/myVid.avi" target="_blank">ERROR</a>
<a href="https://myserver.com/myNonAccentedFolder/myVid.avi" target="_blank">OK 1</a>
<a href="https://myserver.com/myAccentédFolder/myVid.mp4" target="_blank">OK 2</a>
<a href="http://myserver.com/myAccentédFolder/myVid.avi" target="_blank">OK 3</a>
Run Code Online (Sandbox Code Playgroud)
所以我知道如何“修复”它……但是,如果我需要所有的工具,该怎么办?-使用IE 11-文件为.avi-带有重音符号的文件夹-地址为链接内的地址-地址为https协议
%$&$%发生了什么?
urlencode ×10
php ×3
get ×2
swift ×2
url ×2
c# ×1
clean-urls ×1
deep-linking ×1
encode ×1
encryption ×1
forms ×1
google-maps ×1
html ×1
http ×1
https ×1
ios ×1
mime-types ×1
post ×1
python-3.x ×1
query-string ×1
security ×1
xcode9-beta ×1