JS 中常用的編碼(Encode)與解碼(Decode)
前情提要:
本篇筆記起初主要想記錄的內容是 JS 中常用編碼與解碼應用場景,但在查閱資料的過程中發現, JS 中常見的編碼方法牽涉了許多編碼規範的專有名詞,如:ASCII、Unicode、UTF-8、Base64 等等。為了讓讀者能更容易理解 JavaScript 中的編碼原理,我決定先介紹這些基本的編碼知識,這樣在進入 JavaScript 的具體應用時,大家對這些專有名詞會有一定程度的認識,更能掌握其背後的邏輯。
ASCII
ASCII(美國資訊交換標準代碼)是一種早期的字符編碼系統, 主要用於電腦和通訊設備間的文本資料交換。它最早於 1963 年制定,並成為國際標準。ASCII 使用 7 位二進制數來表示字符,總共可以表示 128 個字符,包含 33 個控制字符(如換行、退格)和 95 個可打印字符(如大寫和小寫字母、數字、標點符號等)。每個字符在 ASCII 表中對應一個從 0 到 127 的數字代碼。
例如:
- 字母 A 的 ASCII 碼是 65
- 字母 a 的 ASCII 碼是 97。
在 JavaScript 中,我們可以使用 String.charCodeAt() 方法獲取字符的 ASCII 碼,或者使用 String.fromCharCode() 從 ASCII 碼創建字符。例如:
// 獲取字符的 ASCII 碼
console.log('A'.charCodeAt(0)); // 輸出 65
// 將 ASCII 碼轉換回字符
console.log(String.fromCharCode(65)); // 輸出 A
ASCII 在早期電腦系統中廣泛使用,但由於只能表示 128 個字符,無法涵蓋世界其他語言,因此現在已逐漸被更通用的 Unicode 編碼所取代。