在開發網站前端功能上,或許有機會遇到需要將字串轉換成 Base64 的需求。
瀏覽器有提供了一個很簡單的方法 btoa()
讓你輕鬆地轉換完成。
但現實永遠就不是那麼簡單的,因為他只支援將 ASCII 字串進行轉換,如果你直接將中文內容傳送給他進行處理程式就死在那邊給你看了。
所以就需要辛苦的繞路來解決問題,讓瀏覽器不要太聰明的將中文字視為中文字去處理就好啦。
function strToBase64(str) {
const bytes = new TextEncoder().encode(str);
const binString = String.fromCodePoint(...bytes);
return btoa(binString);
}