【发布时间】:2015-07-01 10:48:27
【问题描述】:
在不同的编程语言中有多个类和函数用于对字符串进行编码和解码以使 URL 友好。例如
在java中
URLEncoder.encode(String, String)
在 PHP 中
urlencode ( string $str )
还有……
我的问题是,如果我在 java 中对字符串进行 UrlEncode,我可以期望其他语言中的其他不同 UrlDecoders 解码为相同的原始字符串吗?
我正在创建一个需要在查询字符串中编码一些 Base64 值的服务,但我不知道服务对象是谁。 请考虑我在这里唯一的选择似乎是查询字符串。我不能使用 xml 或 json 或 HTTP 标头,因为我需要将其放在要重定向的 url 中。 我环顾四周,有一些问题与此一模一样,但没有一个问题有正确的答案。 我非常感谢任何承认或任何解决方案。
编辑:
例如在PHP Manual中有这样的描述:
返回一个字符串,其中包含除 -_ 之外的所有非字母数字字符。已替换为百分号 (%) 后跟两个十六进制数字和编码为加号 (+) 的空格。它的编码方式与 WWW 表单中发布的数据的编码方式相同,即与 application/x-www-form-urlencoded 媒体类型中的方式相同。这与 » RFC 3986 编码(参见 rawurlencode())的不同之处在于,由于历史原因,空格被编码为加号 (+)。
听起来它不遵循 RFC
【问题讨论】:
标签: url encoding cross-platform decoding