解決 btoa 不支援中文的問題

在開發網站前端功能上,或許有機會遇到需要將字串轉換成 Base64 的需求。

瀏覽器有提供了一個很簡單的方法 btoa() 讓你輕鬆地轉換完成。

但現實永遠就不是那麼簡單的,因為他只支援將 ASCII 字串進行轉換,如果你直接將中文內容傳送給他進行處理程式就死在那邊給你看了。

所以就需要辛苦的繞路來解決問題,讓瀏覽器不要太聰明的將中文字視為中文字去處理就好啦。

function strToBase64(str) {
    const bytes = new TextEncoder().encode(str);
    const binString = String.fromCodePoint(...bytes);
    return btoa(binString);
}

作者:Richer

編輯日期:

發布日期:

分類:JavaScript

標籤:

發表留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料