在近來的工作中,需要在Web頁上制作複雜的邏輯和架構以及背景之間交換資料,特别是和背景交換資料,編碼是個必須考慮的問題。否則可能會因為編碼不同,把腳本的執行給搞得亂七八糟,根本得不到想要的結果。Base64是一種常用而又簡單的編碼,就先從它下手弄弄了。
Base64 Content-Transfer-Encoding is designed to represent arbitrary
sequences of octets in a form that need not be humanly
readable.)。好玩,弄來不被人識别?不識别就不識别嘛,反正程式能之别就行了。
這個編碼為什麼叫Base64呢?這是應為它的轉換需要依賴一張64個字元的轉換表,叫做The Base64 Alphabet。
Base64以3個位元組為一個轉換機關,把這24bits分為4份,高位補零,再查前面說的那個轉換表,就編碼完畢了。如果被轉換的資料(以byte為機關)不能被3整除,按餘數補"="(pad),當然最多也就隻有兩種可能,不是補一個pad就是補兩個pad。
例如轉換"部落格園",這三個字的内碼十六進制為:B2A9 BFCD D4B0
二進制為:10110010 10101001 10111111 11001101 11010100 10110000
六個一撥:00101100 00101010 00100110 00111111 00110011 00011101 00010010 00110000,再按新的編碼轉為十進制查表後得到"部落格園"的base64編碼為:"sqm/zdSw"。
// 藍色的0是補位的
。
附1:The Base64 Alphabet
Value
Encoding
A
16
Q
32
g
48
w
1
B
17
R
33
h
49
x
2
C
18
S
34
i
50
y
3
D
19
T
35
j
51
z
4
E
20
U
36
k
52
5
F
21
V
37
l
53
6
G
22
W
38
m
54
7
H
23
X
39
n
55
8
I
24
Y
40
o
56
9
25
Z
41
p
57
10
K
26
a
42
q
58
11
L
27
b
43
r
59
12
M
28
c
44
s
60
13
N
29
d
45
t
61
14
O
30
e
46
u
62
+
15
P
31
f
47
v
63
/
附2:base64編碼源代碼
<script language="javascript">
</script>
<script language="vbscript">
本文轉自部落格園鳥食軒的部落格,原文連結:http://www.cnblogs.com/birdshome/,如需轉載請自行聯系原部落客。