问题标签 [url-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 投票
1 回答
2817 浏览

apache - 网址中的问号(Apache)

我对 url 中的问号有疑问。

例如:我有 url test.com/controller/action/part_1%3Fpart_2(其中 %3F 是 url 编码的问号),并且使用这个重写规则:RewriteRule .* index.php/$0 [PT],它应该按原样传递给我使用的框架(Kohana)。至少我是这么认为的。

问题是 url 编码的问号之后的所有内容都被视为 GET 参数,所以 Kohana 只接收并且part_1我可以看到part_2. $_GET我认为这是网络服务器问题(apache 2.2)。

我应该怎么做 apache 不会将 url 编码的问号视为 GET 参数指示符?

0 投票
2 回答
1345 浏览

javascript - 如何在 JavaScript 中正确编码 URL?

我正在开发一个浏览器插件,它将当前页面的 URL 或任何选定的链接作为参数并将其发送到我们的服务器。当 url 中出现基本拉丁字母的字符时(如http://en.wikipedia.org/wiki/Vehicle),该插件可以正常工作。但是,当 URL 包含来自其他字母的字符(例如http://ru.wikipedia.org/wiki/Коляска )时,插件不起作用,我确实使用了该encodeURIComponent方法,但这似乎并不能解决问题。任何的想法?

谢谢,

奥利维尔。

0 投票
2 回答
3739 浏览

apache - mod_rewrite 规则强制执行规范的百分比编码

我们有一个带有动态 URL 方案的 PHP 应用程序,它需要对字符进行百分比编码,甚至是“非保留字符”,例如实际上不需要编码的括号或撇号。应用程序认为以“错误”方式编码的 URL 被规范化,然后重定向到“正确”编码。

但是谷歌和其他用户代理将以不同的方式规范百分比编码/解码,这意味着当 Googlebot 请求页面时,它会要求“错误”的 URL,当它返回到“正确”URL 的重定向时,Googlebot 将拒绝跟随重定向并将拒绝索引该页面。

是的,这是我们这边的一个错误。HTTP 规范要求服务器同等对待百分比编码和非百分比编码的未保留字符。但是现在解决应用程序代码中的问题并不简单,所以我希望通过使用 Apache 重写规则来避免代码更改,这将确保从应用程序的角度“正确”编码 URL , 这意味着撇号、括号等都是百分比编码的,并且空格被编码为+而不是%20

这是一个例子,我想重写第一种形式并最终得到第二种形式:

  • www.splunkbase.com/apps/All/4.x/Add-On/app:OPSEC+LEA+for+Check+Point+(Linux)
  • www.splunkbase.com/apps/All/4.x/Add-On/app:OPSEC+LEA+for+Check+Point+%28Linux%29

这是另一个:

  • www.splunkbase.com/apps/All/4.x/app:Benford's+Law+Fraud+Detection+Add-on
  • www.splunkbase.com/apps/All/4.x/app:Benford%27s+Law+Fraud+Detection+Add-on

这是另一个:

  • www.splunkbase.com/apps/All/4.x/app:Benford%27s%20Law%20Fraud%20Detection%20Add-on
  • www.splunkbase.com/apps/All/4.x/app:Benford%27s+Law+Fraud+Detection+Add-on

如果应用只看到这些 URL 的第二种形式,则它不会发送任何重定向,Google 将能够为该页面编制索引。

我是一个有重写规则的新手,从我对mod-rewrite 文档的阅读中很明显,mod_rewrite 做了一些自动编码/解码,这可能有助于或伤害我想做的事情,尽管不确定。

关于重写规则以处理上述情况的任何建议?我可以为每个特殊字符设置一个规则,因为它们并不多,但是一个规则(如果可能的话)将是理想的。

0 投票
3 回答
3005 浏览

java - java.net.URI 阻塞主机部分的特殊字符

我有一个 URI 字符串,如下所示:

http://www.christlichepartei%F6sterreichs.at/steiermark/

我正在用这个字符串创建一个 java.lang.URI 实例并且它成功但是当我想检索主机时它返回 null。如果我完全按照上图所示输入,Opera 和 Firefox 也会在这个 URL 上阻塞。但是如果 URI 类无效,它不应该抛出 URISyntaxException 吗?那么如何检测到 URI 是非法的呢?

当我使用产生的 URLDecoder 解码字符串时,它的行为也相同

http: //www.christlicheparteiösterreichs.at/steiermark/

现在这已被 Opera 和 Firefox 接受,但 java.net.URI 仍然不喜欢它。我该如何处理这样的 URL?

谢谢

0 投票
3 回答
3078 浏览

c# - 完整的C#菜鸟,VS2010,不能使用HttpServerUtility.UrlEncode?

所以,我完全是 C# 的菜鸟。我有一个 url,我需要对其进行编码才能使用 urlencoded 帖子。

问题是,我发现的每个资源都说要使用 System.Web.HttpServerUtility.UrlEncode。或者,我看到资源告诉我使用 System.Web.Util.HttpEncoder()。

我添加了对 system.web 的引用,但出现“system.web 命名空间中不存在”和“system.web.util 命名空间中不存在”错误。

任何提示都会很好!

0 投票
12 回答
56561 浏览

asp.net - NameValueCollection 到 URL 查询?

我知道我能做到

但是有没有办法将其转换回网址?

0 投票
2 回答
2420 浏览

.net - 在 Request.Url 中过早解码的带有 url 编码 & 的查询字符串

给定 url /Page.aspx?a=b&title=apples+%26+pearsRequest.Url属性返回/Page.aspx?a=b&title=apples+&+pears

请注意,第二个键值对中的 url 编码 & 符号已被自动解码。其他 url 编码的保留字符不会被自动解码。

这种行为正确吗?

编辑:问题是 Request.Url 属性在我不希望它时自动解码编码的&符号。

回答: string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Host, Sitecore.Context.Request.RawUrl)

0 投票
2 回答
119 浏览

url - 在 GET 请求中传递 URL 时不进行 url 编码有什么影响?

我刚刚在我的浏览器上尝试了以下 URL:http://www.google.com/search?hl=en&q=http://www.yahoo.com/path/to/location它有效!是什么让它发挥作用?除了用 + 或 %20 等替换空格之外,为什么还要对 URL 进行编码?也就是说,即使我没有任何有效 URL 中不允许的字符,我是否仍需要对我的 URL 进行编码?

谢谢你的时间。

0 投票
1 回答
412 浏览

urlencode - 防止 YQL 对密钥进行 URL 编码

我想知道是否可以防止 YQL 对数据表的键进行 URL 编码?

示例:
当前的监护人 API 使用如下 ID:

这些 ID 的问题在于它们包含斜杠 (/),并且这些字符不应在 API 调用中进行 URL 编码,而应保持原样。

所以如果我现在有这个查询

在我的数据表中使用以下url定义

那么这会导致这个 API 调用

http://content.guardianapis.com/environment%2F2010%2Foct%2F29%2Fbiodiversity-talks-ministers-nagoya-strategy?format=xml&order-by=newest&show-fields=all

相反,监护人 API 期望调用如下所示:

http://content.guardianapis.com/environment/2010/oct/29/biodiversity-talks-ministers-nagoya-strategy?format=xml&order-by=newest&show-fields=all

所以问题实际上只是/字符被编码为%2F我不想在这种情况下发生。

关于如何实现这一点的任何想法?

您还可以检查我正在使用的完整数据表:

http://github.com/spier/yql-tables/blob/master/guardian/guardian.content.item.xml

0 投票
2 回答
1140 浏览

utf-8 - 基于代码页的不同查询字符串 urlencoding。ASP 经典

我们目前正在将我们的 webapp 从 ISO-8859-1 转换为 UTF-8。一切都很好,但从其他站点(注册表单)请求获取/发布变量。

其中一些发布到我们网站的网站使用 ISO-8859-1 编码,而有些网站使用 UTF-8。

问题是特殊字符的 URL 编码会因站点字符集而异。

例如: ø = ISO-8859-1 中的 %F8 ø = UTF-8 中的 %C3%B8

当我有 UTF-8 字符集时,我无法正确获得 %F8。我只得到一个 Unicode 字符“替换字符”(U+FFFD)。

任何有关如何解决此问题的提示将不胜感激:)

托比约恩