java Android与PHP encode的区别

作者: 水墨太阳 | 来源:发表于2018-11-16 10:03 被阅读5次

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也有所区别

相关文章

网友评论

    本文标题:java Android与PHP encode的区别

    本文链接:https://www.haomeiwen.com/subject/moppfqtx.html