在不同的编程语言中有多个类和函数,用于对字符串进行编码和解码,以实现URL友好。例如
在java中
URLEncoder.encode(String, String)
PHP中的
urlencode ( string $str )
而且......
我的问题是,如果我在java中对一个字符串进行UrlEncode,我可以期望其他语言中的其他不同的UrlDecoders解码到同一个原始的sting吗?
我正在创建一个需要在查询字符串中编码一些Base64值的服务,而我不知道谁在服务。 请考虑我这里唯一的选项似乎是查询字符串。我不能使用xml或json或HTTP标头因为我需要将它放在要重定向的URL中。 我环顾四周,有一些问题与此类似,但没有一个问题得到了正确答案。 我非常感谢任何承认或任何解决方案。
编辑:
例如在PHP Manual中有以下描述:
返回一个字符串,其中除-_之外的所有非字母数字字符。已被替换为百分号(%),后跟两个十六进制数字和空格,编码为加号(+)。它的编码方式与编码WWW表单中的发布数据的方式相同,这与application / x-www-form-urlencoded媒体类型的方式相同。这与»RFC 3986编码(参见rawurlencode())的不同之处在于,由于历史原因,空格被编码为加号(+)。
听起来它不遵循RFC
答案 0 :(得分:0)
听起来url编码器可以在不同的编程语言中使用各种算法。
但是应该为每个函数寻找编码模式。例如,其中一个可能是
应用程序/ x-WWW窗体-urlencoded
调查JAVA Url编码器:
使用特定的编码方案将字符串转换为application / x-www-form-urlencoded格式。此方法使用提供的编码方案来获取不安全字符的字节。
同时研究PHP的
与application / x-www-form-urlencoded媒体类型
中的方式相同
因此,如果您正在寻找跨平台网址编码,您应该告诉您的用户编码器的格式是什么。 通过这种方式,他们可以找到合适的解码器,或者他们可以实现自己的解码器 经过一番调查,声音application / x-www-form-urlencoded是最受欢迎的。