1.通过线上 base64 编码和 PHP 本美国服务器地 base64_decode 编码得到的结果是不一样的
2.编码得到的都是二进制文件
3.线上的结果和 ios 是一致的,想问下这是为什么呢。php 是 MIME base64 编码的。
发代码看看吧,感觉是字符串编码问题。
utf8 和 gbk 的问题吧
是不是换行了,我记得有些 base64 库是会添加换行的
base64_decode 不是解码吗?
难道不是应该 base64_encode 来编码吗?
打印出来不就知道了,有些库字符会自己转移
是不是 base64 个 url_safe base64 的区别 我之前遇到过这个问题,被坑了一次
是不是 base64 和 url_safe base64 的区别 我之前遇到过这个问题,被坑了一次
一般是换行的区别
不贴代码没法解决,随便踩个坑都可能出现问题,写个 demo 验证下然后贴出来看看,
base64 有 Std 和 URL 两种 ,主要是 对 +/ 或者 -_ 多出的两个符号处理不一致, 还有 结尾的 也不一样,所以还有 padding 和 nopadding (结尾的=号),如果是 URL 还要考虑 URL_ENCODE
具体看:
RFC 4648. section 3.2.
PS : 我是从 golang 的 base64 了解到这些的.
一种是编码字符集的问题,注意一点:base64 是对一堆字节进行编码,通常连长度都相当不一致
一种是字母表不一致的问题,通常仅限于 +/ vs -_ ,硬要说 padding vs no padding 也可以理解为 padding 字符串是 '=' 还是 ''