如何加入网站,石家庄新闻综合频道1,苏州网站建设培训学校,iframe网站如何做统计有时文本里包含一些不可打印的符号#xff0c;而你需要把它们传输到服务器#xff0c;这时我们会需要用到Base64编码。或者你需要把一个图片内容以文本格式嵌入到网页中#xff0c;这时你也会用到 Base64 编码。所谓 Base64 是一种基于64个可打印字符来表示二进制数据的方法…有时文本里包含一些不可打印的符号而你需要把它们传输到服务器这时我们会需要用到Base64编码。或者你需要把一个图片内容以文本格式嵌入到网页中这时你也会用到 Base64 编码。所谓 Base64 是一种基于64个可打印字符来表示二进制数据的方法这些可打印字符包括字母 A-Za-z数字0-9和/。此外等号用作后缀用途。需要注意它的主要作用并非加密而是编码数据方便传输。为了讨论方便本文将主要探讨在JavaScript中如何实现字符串的Base64编码和解码。如果你经历过IE 6-9的“黑暗”时代一定会觉得实现Base64编码/解码很繁琐。HTML 5的出现解救了我们浏览器纷纷内置了原生的方法来支持这个功能btoa() – 根据提供的二进制字符串生成Base64编码后的ASCII字符串atob() – 解码btoa()生成的字符串看起来很完美不过在处理非ASCII字符时会报错如下截图来自Chrome 83开发者工具原因根据设计Base64会以二进制数据作为处理对象。对于JavaScript字符串来说这意味着其中的每个字符只能占用一个字节。如果调用btoa()时传入的字符串包含了占用多个字节的字符那么会报错因为这个字符串被认定为非二进制数据解决方案1.转义所有扩展字符(不建议)这个方案用了 escape 和 unescape以及encodeURIComponent和decodeURIComponent来辅助编码/解码字符串。由于escape()和unescape()函数已被废弃虽然浏览器目前仍支持不建议使用此方案。2.在编码之前转义字符串(建议)此方案用了正则表达式匹配替换功能要解码Base64字符串需要这样做总结Base64是一种广泛使用的编码方案用于在网络上以ASCII字符流的形式安全传输二进制数据。本文介绍了如何对JavaScript的UTF8编码的字符串进行编码和解码特别是如何处理非ASCII字符。当然你仍然可以选择通过网络发送二进制数据。但有时这也有风险因为并非所有的应用程序和网络通信设备都能处理原始二进制数据。而对于大多数应用程序来说ASCII字符集非常容易处理。