无法直接传输的字段,用url_encode还是用base64?
问题描述:
在用一个某开源插件做封装,想要传一些参数进去。
多数字段都是普通字符串参数,但是有一个字段传的是json,结果发现这个插件一看到大括号和双引号就识别错误了。
不想改这个插件的源码,考虑自己传进去的时候转译一下。实测url_encode和base64都可用。
没有任何加密需求(传输走的https。两端接口的这个字段都是公开的,谁看到都无所谓)。
想知道url_encode和base64哪个更好
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
base64编码后的长度比编码前多了1/3,标准的Base64并不适合直接放在URL里传输,有一些Base64的变种,它们将+/等符号转换为其他符号(如_-)
建议使用
rawurlencode
php
中使用url_encode
是不区分英文不变的,而且对于二进制效率也不高;base64
兼容性好点,但是生成的编码会比数据源多33%左右。不是urlencode?前者适合于URL里的参数,后者更适合传输二进制数据。功能上其实没什么差别