12月 05, 2019 Javascript
Base64 encode 把任何資料以一種方式轉成文字的表達,包括可以把 binary 檔案使用文定去表達出來。

以下會講解在 Javascript 上如果把文字資料轉成 Base64 encode。

### 由 Ascii 變成 Base64

```js
// encode a string
var encodedData = window.btoa('Hello, world');
```

### 由 Base64 變成 Ascii 

```js
// decode the string
var decodedData = window.atob(encodedData);
```

就是這麼簡單了 !!!

但這是解決不到 unicode 的問題啦,因為只是 ascii 的轉換。要令 unicode 也可以成功轉換就要先把 unicode 的文字轉換成為 ascii 字符能夠表連出來。

###  使用 escape 及 encodeURIComponent

我們可以透過使用 escape 及 encodeURIComponent 把 unicode 文字變成為 ascii 表達出來的文字。

```js
// ucs-2 string to base64 encoded ascii
function utoa(str) {
	return window.btoa(unescape(encodeURIComponent(str)));
}

// base64 encoded ascii to ucs-2 string
function atou(str) {
	return decodeURIComponent(escape(window.atob(str)));
}
```

用以上的方法就可以把 unicode 文字轉換為 Base64 encode。

---

以下會提供一個舊舊的語法供參考 :

```js
// encode a string
var encoded = new Buffer('string data').toString('base64');

// decode a string
var decoded = new Buffer(encoded, 'base64').toString('ascii');
```
過去文章
2025 (9)
4 (5)
3 (1)
2 (3)
2024 (25)
11 (3)
10 (3)
9 (1)
3 (18)
2022 (6)
10 (1)
6 (2)
5 (1)
3 (1)
1 (1)
2021 (21)
11 (7)
7 (1)
6 (2)
5 (2)
4 (6)
3 (2)
2 (1)
2020 (92)
12 (1)
11 (2)
10 (4)
9 (10)
8 (5)
7 (1)
6 (3)
5 (1)
4 (4)
3 (25)
2 (7)
1 (29)
2019 (57)
12 (25)
11 (7)
9 (25)