js 字符串转base64编码问题?

//字符串转base64
function encode(str){
    var encode = encodeURI(str);
    var base64 = btoa(encode);
    return base64;
}

我用的是这个方法,但是为什么后端收到的数据却是这样的呢
image.png

阅读 8.1k
4 个回答

有个js-base64库 你试试

感觉你没有使用到btoa方法,encodeURI('<html>')的结果就是"%3Chtml%3E",你是不是把encode返回了,而没有返回base64啊。

返给后端的是encode之后的base64吧 可以用fileReader直接转base64的

字符串为啥要 base64?就是因为不能传二进制才 base64,你已经是字符串了,直接传就行了。btoa 没变化也正常。

encodeURI 的目的是把非 ASCII 字符转化成 UTF-8 编号,方便不支持 UTF-8 的系统和软件理解。

所以你这整个函数的表现是符合预期的,是你自己没想明白。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题