base64編碼相關-btoa和atob及中文亂碼報錯問題

base64編碼相關-btoa和atob及中文亂碼報錯問題

  • 最近在做二進制編碼相關的東西,關於Base64的編碼解碼問題。遇到了一些問題。

btoa();

  • btoa函數全稱就是Binary-to-ASCII,在js中用於Base64編碼
let encodedData = window.btoa("WEBGL");
//V0VCR0w=
  • 具體的寫法如上所示,接收一個字符串, 其字符分別表示要編碼爲 ASCII 的二進制數據的單個字節。
  • 返回一個 Base64 表示的字符串。

atob();

  • atob函數全稱就是ASCII-to-Binary,在js中用於Base64解碼。具體用法如下所示
let encodedData = window.btoa("V0VCR0w=");
//WEBGL
  • 參數爲一個Base64表示的字符串,返回值爲一個正常的字符串

存在的問題

  • 當然在實際使用中是有問題的,最主要的問題就是*** 不能轉換中文 ***,下面介紹解決方法:

encodeURIComponent();

  • 這個函數是在uri中轉義除了字母、數字、(、)、.、!、~、*、’、-和_之外的所有字符。示例如下:
console.log(btoa(encodeURIComponent("嘻嘻")));//JUU1JTk4JUJCJUU1JTk4JUJC
  • 解碼如下:
 console.log(decodeURIComponent(atob("JUU1JTk4JUJCJUU1JTk4JUJC")));//嘻嘻
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章