问题标签 [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.
parsing - 如何在 Web 服务器上的请求 URI 中解码保留的转义字符?
很明显,Web 服务器必须解码任何转义的未保留字符(例如字母数字等)才能进行 URI 比较。例如,http://www.example.com/~user/index.htm
应与 相同http://www.example.com/%7Euser/index.htm
。
我的问题是,我们将如何处理转义的保留字符?
一个例子是%2F
或/
。如果%2F
请求 URI 中有一个,Web 服务器的解析器是否应该将其替换为/
? 在上面的例子中,这意味着这http://www.example.com/~user%2Findex.htm
将与http://www.example.com/~user/index.htm
? 虽然我在 Apache 服务器(2.2.17 Unix)上尝试过它,但它看起来给出了“404 Not Found”错误。
那么这是否意味着%2F
其他转义的保留字符应该被单独留下(至少在 URI 比较之前)?
背景资料:
RFC 2616 (HTTP 1.1) 中有两处提到转义解码问题:
Request-URI 以第 3.2.1 节中指定的格式传输。如果使用“% HEX HEX”编码 [42] 对 Request-URI 进行编码,则源服务器必须解码 Request-URI 以正确解释请求。服务器应该使用适当的状态码来响应无效的请求 URI。
和
“保留”和“不安全”集中的字符(参见 RFC 2396 [42])中的字符等价于它们的““%”HEX HEX 编码。
(根据http://trac.tools.ietf.org/wg/httpbis/trac/ticket/2 “不安全”是一个错误,应从规范中删除。所以我们在这里只看“保留”。)
仅供参考,RFC 2396 中此类字符的定义:
保留=“;” | "/" | “?” | “:” | "@" | "&" | “=” | "+" | "$" | ","
无保留 = 字母数字 | 标记
标记 = "-" | "_" | “。” | “!” | "~" | "*" | "'" | "(" | ")"
javascript - 直接从 HTMLEncoding 转换为 URLEncoding
我目前正在将一组 ASP 经典页面转移到我们新的基于 MVC 的 Intranet 中。虽然我没有进行任何重大的功能更改,但我正在进行一些 UI 改进和一些最佳实践。然而,这会引发特殊字符的问题。
一个部分通过临床测试的下拉列表工作,然后通过测试名称上的查询字符串获取。然而 ASP.net 的 HTMLEncoding 过于激进(尽管它是 UTF-8,但它编码的字符范围很广)。这会导致 HTML 编码的字符被 URL 编码,并且整个事情都会引发“潜在危险请求”错误。
我无法对测试名称进行 HTMLEncode,有权更改此名称的人非常有限,但这不是我想要开始的路径。
这让我不得不取消编码字符串然后重新编码,但 JavaScript 没有原生 HTMLDecode 函数。与其获取一长串字符并在字符串上运行替换,我想知道是否有一种简单的方法可以从 HTML 编码的字符直接转换为百分比编码的字符,即,而不是像 &xxx; 那样对某些内容进行解码和重新编码。= %(xxx/2)
perl - 如何使用 LWP::UserAgent 强制对表单数据进行 ISO-8859-1 编码?
似乎 LWP::UserAgent 总是将表单数据编码为 UTF-8,即使明确地将其编码为 ISO-8859-1,如下所示:
请求内容为text=%C3%A8
。我怎么能è
编码为%E8
呢?
objective-c - NSURL中的阿拉伯语UTF编码到百分比编码
正在开发一些通过 Http Requests 将请求从移动设备发送到互联网的移动应用程序
问题是我在这个请求中发送阿拉伯字符作为参数,所以我必须将它们从
UTF-8 到百分比编码
我在这里有一个基于 java 的解决方案:
[在帖子底部你会找到英文详细信息:]
但是我现在用 Objective-C 的问题,怎么办?!
url - URL 百分比编码是否区分大小写?
与 URL 中的%3B
处理方式不同吗?%3b
c# - 使用 c# 对每个 utf-8 字符进行百分比编码
我想准备一个字符串以将其放入“发布”请求中。不幸的是,我发现的所有对 url 进行编码的方法似乎都只将百分比编码应用于少数几个字符。各种方法,例如。HttpUtility.UrlEncode
, 保留一些字符,例如 () 和 § 不变。
url - 为什么 %(百分比)在 RFC 3986(URI 语法)中不被视为保留字符?
显然 % 需要被编码。关于标准的维基百科文章说:
因为百分比 ("%") 字符用作百分比编码八位位组的指示符,所以它必须以百分比编码为 "%25",才能将该八位位组用作 URI 中的数据。
为什么它不被列为保留字符?显然,它被保留以表示 URI 上下文中的特殊内容......
urlencode - URL 编码百分比空间
URL 编码的 Twitter 共享链接问题。我需要分享这句话。
我给你 40% 的折扣
我正在尝试从 url 传递
两个百分比 %% 一起产生问题
有什么解决办法?
java - 从百分比编码的 URL 中提取十六进制值
例如,假设我的 URL 包含以下百分比编码字符: %80
这显然不是 ascii 字符。
如何将此值转换为 Java 中相应的十六进制字符串。我尝试了以下没有运气。结果应该是 80。
php - 百分比编码和 sql LIKE 查询
如何发送get http request
包含带有LIKE %item%
子句的 sql 查询?我已经阅读了有关百分比编码的信息,但还不知道如何处理此类请求。
% sign
被处理,percent-encoding
因此它破坏了 sql 查询。
帮助!