问题标签 [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 投票
3 回答
10268 浏览

java - 将 Tomcat 5.5 配置为 UTF-8 编码所有 sendRedirect() 重定向?

我们正在构建的产品的一个要求是它的 URL 端点在用户的母语中具有语义意义。这意味着我们需要 UTF-8 编码的 URL 来支持所有的字母表。

我们也不希望必须为我们支持的每个应用程序服务器和版本提供安装配置文档,所以如果我们能在代码中完成这个就很好了。这可能是不可能的,因为当 Servlet 收到请求时,它已经被 App 服务器编码,等等。

通过重构请求的路径信息,我已经得到了这个工作(对于我第一个使用 ISO-Latin 非美国 ASCII 字符的用例):

然后解析它。

但是,在使用 sendRedirect() 从 POST 重定向到 GET 后,这不起作用。请求的路径已经转义(所以 ö 被编码为 %F6)并且我上面的方法不起作用。

所以我想我的问题是我做错了吗?如果是这样,我的无知的解药是什么?:)

更新:找到解决方案。问题是 Servlet API 在发送重定向之前在 URL 编码方面有一些奇怪的行为。在调用 sendRedirect() 之前,您必须进行 URL 编码(转义 UTF-8 字符)。encodeRedirectURL() 方法不适合你。

本页讨论它: http: //www.whirlycott.com/phil/2005/05/11/building-j2ee-web-applications-with-utf-8-support/

0 投票
2 回答
127 浏览

webserver - Web 应用程序假定查询字符串采用 UTF-8 格式几乎是一种标准吗?

当我们输入或粘贴到浏览器的地址栏时:

http://www.google.com/search?q=%E5%A4%A9

我认为无法判断编码是 UTF-8 还是任何其他编码,因此应用程序通常会假定它是 UTF-8。那么是否完全由应用程序将其解释为它想要或假设的任何编码?

(对于所有网站,甚至我工作的平台,它们似乎几乎总是 UTF-8)

更新:改为 webapp。

0 投票
11 回答
204802 浏览

php - urlencode vs rawurlencode?

如果我想使用变量创建 URL,我有两种选择来对字符串进行编码。urlencode()rawurlencode()

究竟有什么区别,哪个是首选?

0 投票
6 回答
6377 浏览

security - 当数据是 URL 编码时,HTTP GET 的安全性如何?

如果数据是 URL 编码的,那么通过 HTTP GET 发送登录凭据是否足够安全?

0 投票
1 回答
953 浏览

xml - 如何停止 XSL 非转义 URL

我正在使用 XSL 在浏览器中显示电子邮件消息的 XML 表示。电子邮件附件存储在与主电子邮件 XML 文件不同的文件中,因此我希望生成的电子邮件网页包含指向其附件的链接。

然而,一些附件本身就是电子邮件,可能是转发或回复的,因此可能具有包含冒号的名称,例如FW:Important。该名称被 URL 转义为FW%3AImportant,并作为文件存储为FW%3AImportant.xml

问题是我的 XSL 生成网页中的 URL 未转义,并且再次包含冒号 ( file://FW:Important.xml ),因此是一个损坏的链接。阻止这种行为的最佳方法是什么?

这是 XML 片段:

这是 XSL 片段:

0 投票
2 回答
4589 浏览

ruby-on-rails - 如何在 Rails 中禁用 cookie 的 URL 编码

我有一个 Rails 应用程序,它必须与一个非常旧的遗留应用程序共存。旧版应用程序会查找具有包含特定字符串的值的 cookie。不幸的是,遗留 cookie 中的字符通常包含斜杠。我遇到的问题是,当 Rails 应用程序写入 cookie 时,它​​首先会进行 URL 编码,这会导致遗留应用程序中断,因为 cookie 值不正确。

cookie_performance_fix.rb我通过编辑文件(路径./actionpack-1.13.5/lib/action_controller/cgi_ext/cookie_performance_fix.rb:)在 Rails 1.13.5 中进行了此操作
,为了使其正常工作,我更改了代码,如下所示:

在我决定将 Rails 升级到 2.3.2 版本之前,这实际上运行良好。
在 Rails 2.3.2 中,该cookie_performance_fix.rb文件不再存在。我查看了同一个目录并找到了一个名为的文件cookie.rb ,我尝试以类似的方式对其进行修改。

不幸的是,这似乎不起作用。在新的 Rails 2.3.2 中,cookie 不断得到 URL 编码。我知道关闭 URL 编码并不是最好的主意,但在遗留应用程序退役之前我没有太多选择。不幸的是,我无法访问旧代码来添加对 cookie 的 URL 解编码的支持,因此我必须确保使用正确的序列(包括斜杠)编写旧 cookie。如果有人能告诉我如何在 Rails 2.3.2 中关闭 URL 编码,将不胜感激。
谢谢。

0 投票
1 回答
3624 浏览

c# - WCF 是否自动 URL 编码/解码流?

我正在为一个使用 HTTP post/get 请求的程序编写服务,所以我使用一个钩子方法处理所有传入的请求,该方法接受 aSystem.IO.Stream并返回 a System.IO.Stream

当我通过转换为字符串然后使用来解析传入的请求(包含在 HTML 表单中)时System.Web.HttpUtility.ParseQueryString(string),它似乎会自动对数据进行 URL 解码。当我返回一个文件路径(一个 Windows UNC,不打算解释我为什么这样做时,我最初对字符串进行 URL 编码,然后再转换为流并使用返回语句返回它,客户端似乎得到了双重 -编码字符串。

所以,为了确定,WCF 是否会自动为我的 URL 编码/解码流作为使用的一部分System.ServiceModel.WebHttpBinding

0 投票
6 回答
172173 浏览

url - 在 URL 中,空格应该使用 %20 还是 + 编码?

在 URL 中,我应该使用%20or对空格进行编码+吗?例如,在下面的例子中,哪一个是正确的?

我们公司倾向于前者,但使用URLEncoder.encode(String, String)带有"xbox 360"(and "UTF-8")的 Java 方法返回后者

那么,有什么区别呢?

0 投票
4 回答
2028 浏览

asp.net - URL 编码在处理之前丢失 - ASP.net

我正在构建一个广泛使用 URL 编码的网络商店。

我的数据库中有一个部门和类别列表,用于生成链接。当然,这些是在发送之前对 URL 进行编码的。

一些典型的链接是...
/MySite/Store/Countertop+Equipment/Can+Openers.aspx
/MySite/Store/Dinnerware.aspx /MySite/Store/Kitchen/Pastry%2f+Decorating.aspx

在我的 HTTPHandler 中,我调用 app.Request.Path 来获取当前路径。此调用返回的字符串不再是 URL 编码的,这使我无法正确解析。一旦 URL 编码丢失
/MySite/Store/Kitchen/Pastry%2f+Decorating.aspx变为
/MySite/Store/Kitchen/Pastry/Decorating.aspx

这显然破坏了将 URL 转换为 QueryString 的方法。

有人知道怎么修这个东西吗?

这是我的 HTTPHandler 的核心

我真的很感谢你的帮助!

0 投票
4 回答
12557 浏览

c# - ASP.Net URL 编码

我正在 ASP.net 中实现 URL 重写,我的 URL 给我带来了很多问题。

URL 是从部门和类别的数据库中生成的。我希望员工能够使用任何适当的特殊字符将项目添加到数据库中,而不会破坏网站。

我在构建 URL 之前对数据进行编码。

有几个问题...

  1. IIS 在 URL 到达 .net 之前对其进行解码,因此无法正确解析其中包含“/”的任何内容。
  2. ASP.net 被 url 弄糊涂了,使得“~”在某些页面中无用
  3. 我从内置测试服务器迁移到我的本地 IIS 服务器(XP 机器),任何包含编码 & (%26) 的 URL 都会给我一个“错误请求”错误。
  4. UrlEncode 保留了一些中断字符,例如“。”

我确实有另外两个关于这个主题的相关帖子,当时我只看到了上游的小问题而不是大问题。我找到了一些注册表技巧来解决“错误请求”问题,但我将部署到共享托管环境,这使得它变得毫无用处。我也知道这是对某些安全问题的修复,所以我不想在不知道我打开什么蠕虫的情况下绕过它。

与其试图强制 .net 将原始 url 传递给我,或者覆盖 IIS 设置,不如首先创建真正安全的 URL。

我会注意到我已经尝试过 AntiXss.URLEncode、HttpUtility.URLEncode、URI.EscapeDataString。我什至尝试过双 URLEncodng 之类的愚蠢操作。是否有一个实用程序可以满足我的需要,或者我真的需要自己动手。我什至正在考虑做一些 Hacky 的事情,比如用不寻常的字符串替换 %。最终结果应该至少是可读的,这是首先使用 URL 重写的重点。

很抱歉发了这么长的帖子——我只是想确保我已经包含了所有必要的细节。我似乎找不到任何相关信息,而且这似乎是一个常见问题 - 所以也许我错过了一些大问题。感谢您的帮助,以及对冗长解释的耐心!


为清楚起见进行编辑:

当我说 url 是从数据库构建的时,我的意思是目录结构是从我的数据库中的部门和类别构建的。

一些示例 URL -

Mystore/Refrigeration/Bar+Fridge.aspx
Mystore/Cooking+Equipment.aspx
Mystore/Kitchen/Cutting+Boards.aspx

当我使用“Beverage & Bar”或“Pastry/Decorating”之类的部门来构建我的 URL 时,问题就出现了。尽管首先被编码,但这些会导致上述问题。

除了特殊字符编码问题外,我的处理程序已经实现并且工作正常。