Base64
Base64是一种编码方法,可以将任意字符转成可打印字符。使用这种编码方法,主要不是为了加密,而是为了不出现特殊字符,简化程序的处理。
-
JavaScript原生提供两个Base64相关方法。
- btoa():字符串或二进制值转为Base64编码
- atob():Base64编码转为原来的编码
-
针对ANSI字符串
var string = 'Hello World!'; btoa(string) // "SGVsbG8gV29ybGQh" atob('SGVsbG8gV29ybGQh') // "Hello World!"
-
不适合非ASCII码的字符,会报错。
btoa('你好') // Uncaught DOMException: The string to be encoded contains characters outside of the Latin1 range.
-
针对中文 (中间插入一个转码环节)
// 先使用encodeURIComponent 将中文转成ANSI function base64Encode(str) { return btoa(encodeURIComponent(str)); } // 将ANSI转成中文 function base64Decode(str) { return decodeURIComponent(atob(str)); } b64Encode('你好') // "JUU0JUJEJUEwJUU1JUE1JUJE" b64Decode('JUU0JUJEJUEwJUU1JUE1JUJE') // "你好"