查询字符串的跨平台 Url 编码
Cross Platform Url Encoding for Query Strings
在不同的编程语言中有多个 类 和函数用于编码和解码字符串 URL 友好。例如
在java
URLEncoder.encode(String, String)
在PHP
urlencode ( string $str )
还有...
我的问题是,如果我在 java 中对字符串进行 UrlEncode,我是否可以期望其他语言中的其他不同 UrlDecoder 解码为相同的原始字符串?
我正在创建一个需要在查询字符串中对某些 Base64 值进行编码的服务,但我不知道服务对象是谁。
请考虑我在这里唯一的选择似乎是查询字符串。我不能使用 xml 或 json 或 HTTP headers 因为我需要它在 url 中才能被重定向。
我环顾四周,发现有一些问题与此完全相同,但没有一个有正确的答案。
我非常感谢任何承认或任何解决方案。
编辑:
例如PHP Manual中有这样的描述:
Returns a string in which all non-alphanumeric characters except -_. have been replaced with a percent (%) sign followed by two hex digits and spaces encoded as plus (+) signs. It is encoded the same way that the posted data from a WWW form is encoded, that is the same way as in application/x-www-form-urlencoded media type. This differs from the » RFC 3986 encoding (see rawurlencode()) in that for historical reasons, spaces are encoded as plus (+) signs.
这听起来不符合 RFC
听起来 url 编码器可以在不同的编程语言中使用各种算法。
但是应该为每个函数寻找编码模式。例如,其中之一可能是
application/x-www-form-urlencoded
调查 JAVA Url 编码器:
Translates a string into application/x-www-form-urlencoded format using a specific encoding scheme. This method uses the supplied encoding scheme to obtain the bytes for unsafe characters.
也在调查PHP的
that is the same way as in application/x-www-form-urlencoded media type
因此,如果您正在寻找跨平台 Url 编码,您应该告诉您的用户您的编码器格式是什么。
这样,他们就可以找到合适的解码器,否则他们可以实现自己的解码器。
经过一些调查,声音 application/x-www-form-urlencoded 是最受欢迎的。
在不同的编程语言中有多个 类 和函数用于编码和解码字符串 URL 友好。例如
在java
URLEncoder.encode(String, String)
在PHP
urlencode ( string $str )
还有...
我的问题是,如果我在 java 中对字符串进行 UrlEncode,我是否可以期望其他语言中的其他不同 UrlDecoder 解码为相同的原始字符串?
我正在创建一个需要在查询字符串中对某些 Base64 值进行编码的服务,但我不知道服务对象是谁。 请考虑我在这里唯一的选择似乎是查询字符串。我不能使用 xml 或 json 或 HTTP headers 因为我需要它在 url 中才能被重定向。 我环顾四周,发现有一些问题与此完全相同,但没有一个有正确的答案。 我非常感谢任何承认或任何解决方案。
编辑:
例如PHP Manual中有这样的描述:
Returns a string in which all non-alphanumeric characters except -_. have been replaced with a percent (%) sign followed by two hex digits and spaces encoded as plus (+) signs. It is encoded the same way that the posted data from a WWW form is encoded, that is the same way as in application/x-www-form-urlencoded media type. This differs from the » RFC 3986 encoding (see rawurlencode()) in that for historical reasons, spaces are encoded as plus (+) signs.
这听起来不符合 RFC
听起来 url 编码器可以在不同的编程语言中使用各种算法。
但是应该为每个函数寻找编码模式。例如,其中之一可能是
application/x-www-form-urlencoded
调查 JAVA Url 编码器:
Translates a string into application/x-www-form-urlencoded format using a specific encoding scheme. This method uses the supplied encoding scheme to obtain the bytes for unsafe characters.
也在调查PHP的
that is the same way as in application/x-www-form-urlencoded media type
因此,如果您正在寻找跨平台 Url 编码,您应该告诉您的用户您的编码器格式是什么。
这样,他们就可以找到合适的解码器,否则他们可以实现自己的解码器。
经过一些调查,声音 application/x-www-form-urlencoded 是最受欢迎的。