问题标签 [percent-encoding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
59284 浏览

python - 如何防止 python 请求对我的 URL 进行百分比编码?

我正在尝试在 python 中使用 requests.get() 获取以下格式的 URL:

http://api.example.com/export/?format=json&key=site:dummy+type:example+group:wheel

但是,URL 得到了百分比编码,我没有得到预期的响应。

如果我直接传递 URL,则此方法有效:

有没有办法以原始形式传递参数 - 没有百分比编码?

谢谢!

0 投票
1 回答
2562 浏览

c# - Uri.EscapeDataString 怪异

为什么 EscapeDataString 在 .NET 4 和 4.5 之间的行为不同?输出是

  • Uri.EscapeDataString("-_.!~*'()") => "-_.!~*'()"

  • Uri.EscapeDataString("-_.!~*'()") => "-_.%21~%2A%27%28%29"

文档

默认情况下,EscapeDataString 方法将除 RFC 2396 未保留字符之外的所有字符转换为其十六进制表示形式。如果启用国际资源标识符 (IRI) 或国际化域名 (IDN) 解析,则 EscapeDataString 方法会将所有字符(RFC 3986 未保留字符除外)转换为其十六进制表示。所有 Unicode 字符在转义之前都会转换为 UTF-8 格式。

作为参考,未保留字符在RFC 2396中定义如下:

RFC 3986中:

源代码

看起来EscapeDataString的每个字符是否被转义大致是这样确定的

在最后检查“是一个非保留字符”时,在 RFC2396 和 RFC3986 之间进行选择。该方法的源代码逐字是

该代码指的是

混乱

文档说 EscapeDataString 的输出取决于是否启用了 IRI/IDN 解析,而源代码说输出由TargetsAtLeast_Desktop_V4_5. 有人可以解决这个问题吗?

0 投票
1 回答
953 浏览

ios - NSURLComponents 获取百分比编码

根据以下文件NSURLComponents

如果设置未编码的属性,则可以通过读取编码的属性值来获得编码的等效值,反之亦然。

我试图获取查询的百分比编码版本和 url 的路径,但我错过了一些东西:

我在哪里失败?

0 投票
2 回答
6767 浏览

java - 如何在 Java 中进行百分比编码?

如RFC 3986中所述,如何对字符串进行百分比编码?即我不想要(IMO,奇怪的)www-url-form-encoded,因为 不同的。

如果重要的话,我正在对不一定是整个 URL 的数据进行编码。

0 投票
0 回答
75 浏览

apache - 使用 .htaccess 纠正错误编码的传入链接

我们已经开始获取导致 404 错误的传入链接,因为问号被编码为%253F和等号是%253D

有没有办法在 .htaccess 中进行 301 重定向,将这些不正确的编码换成正确的编码?

0 投票
1 回答
66 浏览

ios - NSString 到 NSURL 返回 false

我有一个字符串中的 URL:http://bs.serving-sys.com/BurstingPipe/adServer.bs?cn=is&c=23&pl=VAST&pli=10226041&PluID=0&pos=6670&ord=%5B1423164382.84%5D&cim=1

我正在尝试将该字符串转换为NSURL.

我尝试了几件事,它们是:

当我使用断点跟踪 URL 对象时,它分配 0 => false。

我应该怎么做才能将该字符串转换为NSURL

0 投票
2 回答
598 浏览

php - 将整个 PHP 字符串百分比编码为编号的 ASCII 值以进行混淆

我想以某种方式掩盖其内容,$url = "http://blah.somedomain.com/contents/somefolder/somefile.htm";以便我可以将它们用于链接,但这样在查看页面源时,人类不容易阅读这些 URL。当点击它时,混淆的 URL 仍然需要在浏览器中工作,所以我看过的其他混淆方法并不好。

我们追求的是例如$obscureurl = "%3A%2F%2F"...等

有任何想法吗?谢谢。


编辑:到目前为止,感谢您的建议,但为了澄清,我应该说我不是在编码成 HTML 实体(# 值)之后,而是在百分比编码(ASCII 中的十六进制值)之后。

例如,更改hello@me.com为:%68%65%6c%6c%6f%40%6d%65%2e%63%6f%6d

每个字母和符号的十六进制的 ASCII 表在这里:http: //ascii.cl/

用 PHP 可以实现这种完全转换吗?谢谢

0 投票
1 回答
203 浏览

python - Python 仅对 URL 中的某些字符进行百分比编码

#如果它出现在给定的 url 中,我必须只对字符进行百分比编码。我知道我们可以使用urllib.quote. 它需要一个safe关键字来设置特定字符以对 URL 安全。我正在寻找类似的东西:

问候。

0 投票
2 回答
429 浏览

unicode - 如何使用包含扩展字符的主机名形成 URI 以访问网络机器

我在本地网络上有一些 Windows 7 机器,每台机器都有一个主机名。其中一个是运行 Java 8 应用程序,该应用程序必须通过 HTTP 访问另一台机器,因此它需要形成一个包含服务器机器主机名的 URI。运行 HTTP 服务器的机器有一个包含日文字符的主机名,这些字符在 URI 中是不允许的。

如何构造 URI 以访问本地网络上的服务器?RFC 4501,“域名系统统一资源标识符”,表示根据 RFC 3986,“统一资源标识符 (URI):通用语法”进行编码,我将其推断为 UTF-8 八位字节的百分比编码。但是 RFC 3490,“应用程序中的国际化域名 (IDNA)”,表示要转换为 Punycode。

那么它是百分比编码还是 Punycode 呢?哪种编码允许 Java 应用程序成功查找并连接到本地网络上的另一台 Windows 7 机器,主机名中包含扩展字符?

0 投票
2 回答
259 浏览

objective-c - Objective-C URL 字符串包含单个百分号

我有一个以百分号(%)结尾的字符串,

此字符串是为 URL 请求准备的参数:

请求返回nil

我试过了:

我怎么可能只有 1% 转换为请求 url?

任何意见,将不胜感激。