java Android与PHP encode的区别

android中URLEncoder.encode  实际上与PHP encode有所区别。

其中android的URLEncoder.encode 将

空格 =》 +

“-”,“_”,“.”,“*”  这四种符号不做编码

源代码截图

URLEncoder源代码截图

PHP encode 分为urlencode()和rawurlencode()

其中rawurlencode在PHP 5.3.0前遵循  RFC 1738 , PHP 5.3.0前之后遵循 RFC 3986

详情见:

https://stackoverflow.com/questions/996139/urlencode-vs-rawurlencode


android的URLEncoder.encode与PHPrawurlencode()区别

 + 改为"%20"

"*" 改为 "%2A"

"%7E" 改为  "~"

在Java端的处理(kotlin代码)

fun encode(str:String?): String{

    return URLEncoder.encode(str,"UTF-8").replace("+", "%20").replace("*", "%2A").replace("%7E", "~");

}


PS:  android.net.Uri 遵循的是rfc2396,与PHP也有所区别

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容