在网上找了个JS实现的Base64编码转换,所以就想自己研究下,界面如下:

将代码以BASE64方式加密、解密

请输入要进行编码或解码的字符:

编码结果以ASCII码16进制显示

解码结果以ASCII码16进制显示

Base64编码或解码结果:


Base64编码说明
  Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用'=',因此编码后输出的文本末尾可能会出现1或2个'='。

  为了保证所输出的编码位可读字符,Base64制定了一个编码表,以便进行统一转换。编码表的大小为2^6=64,这也是Base64名称的由来。

Base64编码表

码值 字符   码值 字符   码值 字符   码值 字符
0 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 0
5 F 21 V 37 l 53 1
6 G 22 W 38 m 54 2
7 H 23 X 39 n 55 3
8 I 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 a 42 q 58 6
11 L 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 u 62 +
15 P 31 f 47 v 63 /

通过本工具可以对代码进行Base64加密或者解密。Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一。

ASCII码表详解

ASCII码大致可以分作三部分组成。
第一部分是:ASCII非打印控制字符
第二部分是:ASCII打印字符
第三部分是:扩展ASCII打印字符

第一部分:ASCII非打印控制字符表

ASCII表上的数字0–31分配给了控制字符,用于控制像打印机等一些外围设备。例如,12代表换页/新页功能。此命令指示打印机跳到下一页的开头。(参详ASCII码表中0-31)

第二部分:ASCII打印字符

数字 32–126 分配给了能在键盘上找到的字符,当您查看或打印文档时就会出现。数字127代表 DELETE 命令。(参详ASCII码表中32-127)

ASCII码表 0-127

Bin Dec Hex 缩写/字符 解释
00000000 0 00 NUL(null) 空字符
00000001 1 01 SOH(start of headling) 标题开始
00000010 2 02 STX (start of text) 正文开始
00000011 3 03 ETX (end of text) 正文结束
00000100 4 04 EOT (end of transmission) 传输结束
00000101 5 05 ENQ (enquiry) 请求
00000110 6 06 ACK (acknowledge) 收到通知
00000111 7 07 BEL (bell) 响铃
00001000 8 08 BS (backspace) 退格
00001001 9 09 HT (horizontal tab) 水平制表符
00001010 10 0A LF (NL line feed, new line) 换行键
00001011 11 0B VT (vertical tab) 垂直制表符
00001100 12 0C FF (NP form feed, new page) 换页键
00001101 13 0D CR (carriage return) 回车键
00001110 14 0E SO (shift out) 不用切换
00001111 15 0F SI (shift in) 启用切换
00010000 16 10 DLE (data link escape) 数据链路转义
00010001 17 11 DC1 (device control 1) 设备控制1
00010010 18 12 DC2 (device control 2) 设备控制2
00010011 19 13 DC3 (device control 3) 设备控制3
00010100 20 14 DC4 (device control 4) 设备控制4
00010101 21 15 NAK (negative acknowledge) 拒绝接收
00010110 22 16 SYN (synchronous idle) 同步空闲
00010111 23 17 ETB (end of trans. block) 传输块结束
00011000 24 18 CAN (cancel) 取消
00011001 25 19 EM (end of medium) 介质中断
00011010 26 1A SUB (substitute) 替补
00011011 27 1B ESC (escape) 溢出
00011100 28 1C FS (file separator) 文件分割符
00011101 29 1D GS (group separator) 分组符
00011110 30 1E RS (record separator) 记录分离符
00011111 31 1F US (unit separator) 单元分隔符
00100000 32 20 (space) 空格
00100001 33 21 !  
00100010 34 22 "  
00100011 35 23 #  
00100100 36 24 $  
00100101 37 25 %  
00100110 38 26 &  
00100111 39 27 '  
00101000 40 28 (  
00101001 41 29 )  
00101010 42 2A *  
00101011 43 2B +  
00101100 44 2C ,  
00101101 45 2D -  
00101110 46 2E .  
00101111 47 2F /  
00110000 48 30 0  
00110001 49 31 1  
00110010 50 32 2  
00110011 51 33 3  
00110100 52 34 4  
00110101 53 35 5  
00110110 54 36 6  
00110111 55 37 7  
00111000 56 38 8  
00111001 57 39 9  
00111010 58 3A :  
00111011 59 3B ;  
00111100 60 3C <  
00111101 61 3D =  
00111110 62 3E >  
00111111 63 3F ?  
01000000 64 40 @  
01000001 65 41 A  
01000010 66 42 B  
01000011 67 43 C  
01000100 68 44 D  
01000101 69 45 E  
01000110 70 46 F  
01000111 71 47 G  
01001000 72 48 H  
01001001 73 49 I  
01001010 74 4A J  
01001011 75 4B K  
01001100 76 4C L  
01001101 77 4D M  
01001110 78 4E N  
01001111 79 4F O  
01010000 80 50 P  
01010001 81 51 Q  
01010010 82 52 R  
01010011 83 53 S  
01010100 84 54 T  
01010101 85 55 U  
01010110 86 56 V  
01010111 87 57 W  
01011000 88 58 X  
01011001 89 59 Y  
01011010 90 5A Z  
01011011 91 5B [  
01011100 92 5C \  
01011101 93 5D ]  
01011110 94 5E ^  
01011111 95 5F _  
01100000 96 60 `  
01100001 97 61 a  
01100010 98 62 b  
01100011 99 63 c  
01100100 100 64 d  
01100101 101 65 e  
01100110 102 66 f  
01100111 103 67 g  
01101000 104 68 h  
01101001 105 69 i  
01101010 106 6A j  
01101011 107 6B k  
01101100 108 6C l  
01101101 109 6D m  
01101110 110 6E n  
01101111 111 6F o  
01110000 112 70 p  
01110001 113 71 q  
01110010 114 72 r  
01110011 115 73 s  
01110100 116 74 t  
01110101 117 75 u  
01110110 118 76 v  
01110111 119 77 w  
01111000 120 78 x  
01111001 121 79 y  
01111010 122 7A z  
01111011 123 7B {  
01111100 124 7C |  
01111101 125 7D }  
01111110 126 7E ~  
01111111 127 7F DEL (delete) 删除

第三部分:扩展ASCII打印字符

扩展的ASCII字符满足了对更多字符的需求。扩展的ASCII包含ASCII中已有的128个字符(数字0–32显示在下图中),又增加了128个字符,总共是256个。即使有了这些更多的字符,许多语言还是包含无法压缩到256个字符中的符号。因此,出现了一些ASCII的变体来囊括地区性字符和符号。例如,许多软件程序把ASCII表(又称作ISO8859-1)用于北美、西欧、澳大利亚和非洲的语言。

出处:http://www1.tc711.com/tool/BASE64.htm

http://www.asciima.com/

=================================================================================================================================

代码如下:

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Base64编码/解码器 在线解码</title>
<style type="text/css">
#code {
text-align: left;
}
.c {
text-align: left;
}
body,td,th {
font-size: 12px;
}
a:link {
color: #666;
text-decoration: none;
}
a:visited {
text-decoration: none;
color: #666;
}
a:hover {
text-decoration: underline;
color: #666;
}
a:active {
text-decoration: none;
color: #F00;
}
</style>
</head>
<SCRIPT type=text/javascript>
var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var base64DecodeChars = new Array(
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
-1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1); function base64encode(str) {
var out, i, len;
var c1, c2, c3; len = str.length;
i = 0;
out = "";
while(i < len) {
c1 = str.charCodeAt(i++) & 0xff;
if(i == len)
{
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt((c1 & 0x3) << 4);
out += "==";
break;
}
c2 = str.charCodeAt(i++);
if(i == len)
{
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
out += base64EncodeChars.charAt((c2 & 0xF) << 2);
out += "=";
break;
}
c3 = str.charCodeAt(i++);
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6));
out += base64EncodeChars.charAt(c3 & 0x3F);
}
return out;
} function base64decode(str) {
var c1, c2, c3, c4;
var i, len, out; len = str.length;
i = 0;
out = "";
while(i < len) {
/* c1 */
do {
c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
} while(i < len && c1 == -1);
if(c1 == -1)
break; /* c2 */
do {
c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
} while(i < len && c2 == -1);
if(c2 == -1)
break; out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4)); /* c3 */
do {
c3 = str.charCodeAt(i++) & 0xff;
if(c3 == 61)
return out;
c3 = base64DecodeChars[c3];
} while(i < len && c3 == -1);
if(c3 == -1)
break; out += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2)); /* c4 */
do {
c4 = str.charCodeAt(i++) & 0xff;
if(c4 == 61)
return out;
c4 = base64DecodeChars[c4];
} while(i < len && c4 == -1);
if(c4 == -1)
break;
out += String.fromCharCode(((c3 & 0x03) << 6) | c4);
}
return out;
} function utf16to8(str) {
var out, i, len, c; out = "";
len = str.length;
for(i = 0; i < len; i++) {
c = str.charCodeAt(i);
if ((c >= 0x0001) && (c <= 0x007F)) {
out += str.charAt(i);
} else if (c > 0x07FF) {
out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
} else {
out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
}
}
return out;
} function utf8to16(str) {
var out, i, len, c;
var char2, char3; out = "";
len = str.length;
i = 0;
while(i < len) {
c = str.charCodeAt(i++);
switch(c >> 4)
{
case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
// 0xxxxxxx
out += str.charAt(i-1);
break;
case 12: case 13:
// 110x xxxx 10xx xxxx
char2 = str.charCodeAt(i++);
out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
break;
case 14:
// 1110 xxxx 10xx xxxx 10xx xxxx
char2 = str.charCodeAt(i++);
char3 = str.charCodeAt(i++);
out += String.fromCharCode(((c & 0x0F) << 12) |
((char2 & 0x3F) << 6) |
((char3 & 0x3F) << 0));
break;
}
} return out;
} function CharToHex(str) {
var out, i, h;
out = "";
i = 0;
while(i < str.length)
{
h = str.charCodeAt(i++).toString(16);
out += "\\0x" + h;
out +=(i > 0 && i % 8 == 0)?"\r\n":", ";
}
return out;
} function doEncode() {
var src = document.getElementById('src').value;
var opts = document.getElementById('opt1');
document.getElementById('dest').value = opts.checked?CharToHex(base64encode(utf16to8(src))):base64encode(utf16to8(src));
} function doDecode() {
var src = document.getElementById('src').value;
var opts = document.getElementById('opt2');
document.getElementById('dest').value = opts.checked?CharToHex(base64decode(src)):utf8to16(base64decode(src));
} </SCRIPT>
<body>
<center>
<h3>将代码以BASE64方式加密、解密</h3>
<p class="medium">
<br />
请输入要进行编码或解码的字符:</p>
<textarea name="src" id="src" cols="80" rows="6" style="width:600px;height:120px;"></textarea>
<p class="tcenter">
<input onclick="doEncode();" type="button" value="编 码" name="encode" class="button" />
<label><input type="checkbox" value="hex" id="opt1" />编码结果以ASCII码16进制显示</label><br />
<input onclick="doDecode();" type="button" value="解 码" name="decode" class="button" />
<label><input type="checkbox" value="hex" id="opt2" />解码结果以ASCII码16进制显示</label>
</p>
<p class="medium">Base64编码或解码结果:</p>
<textarea name="dest" id="dest" cols="80" rows="6" style="width:600px;height:120px;"></textarea> <hr size="1" noshade="noshade" class="hline" width="600" />
<p class="medium" align="left" style="width:600px">
<strong>Base64编码说明</strong><br />
  Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用'=',因此编码后输出的文本末尾可能会出现1或2个'='。
</p>
<p class="medium" align="left" style="width:600px">
  为了保证所输出的编码位可读字符,Base64制定了一个编码表,以便进行统一转换。编码表的大小为2^6=64,这也是Base64名称的由来。
</p>
<h2 class="medium">Base64编码表</h2>
<table class="mtable" style="text-align:center">
<tr>
<th scope="col">码值</th>
<th scope="col">字符</th>
<td rowspan="18"> </td>
<th scope="col">码值</th>
<th scope="col">字符</th>
<td rowspan="18"> </td>
<th scope="col">码值</th>
<th scope="col">字符</th>
<td rowspan="18"> </td>
<th scope="col">码值</th>
<th scope="col">字符</th>
</tr>
<tr>
<td>0</td>
<td>A</td>
<td>16</td>
<td>Q</td>
<td>32</td>
<td>g</td>
<td>48</td>
<td>w</td>
</tr>
<tr>
<td>1</td>
<td>B</td>
<td>17</td>
<td>R</td>
<td>33</td>
<td>h</td>
<td>49</td>
<td>x</td>
</tr>
<tr>
<td>2</td>
<td>C</td>
<td>18</td>
<td>S</td>
<td>34</td>
<td>i</td>
<td>50</td>
<td>y</td>
</tr>
<tr>
<td>3</td>
<td>D</td>
<td>19</td>
<td>T</td>
<td>35</td>
<td>j</td>
<td>51</td>
<td>z</td>
</tr>
<tr>
<td>4</td>
<td>E</td>
<td>20</td>
<td>U</td>
<td>36</td>
<td>k</td>
<td>52</td>
<td>0</td>
</tr>
<tr>
<td>5</td>
<td>F</td>
<td>21</td>
<td>V</td>
<td>37</td>
<td>l</td>
<td>53</td>
<td>1</td>
</tr>
<tr>
<td>6</td>
<td>G</td>
<td>22</td>
<td>W</td>
<td>38</td>
<td>m</td>
<td>54</td>
<td>2</td>
</tr>
<tr>
<td>7</td>
<td>H</td>
<td>23</td>
<td>X</td>
<td>39</td>
<td>n</td>
<td>55</td>
<td>3</td>
</tr>
<tr>
<td>8</td>
<td>I</td>
<td>24</td>
<td>Y</td>
<td>40</td>
<td>o</td>
<td>56</td>
<td>4</td>
</tr>
<tr>
<td>9</td>
<td>J</td>
<td>25</td>
<td>Z</td>
<td>41</td>
<td>p</td>
<td>57</td>
<td>5</td>
</tr>
<tr>
<td>10</td>
<td>K</td>
<td>26</td>
<td>a</td>
<td>42</td>
<td>q</td>
<td>58</td>
<td>6</td>
</tr>
<tr>
<td>11</td>
<td>L</td>
<td>27</td>
<td>b</td>
<td>43</td>
<td>r</td>
<td>59</td>
<td>7</td>
</tr>
<tr>
<td>12</td>
<td>M</td>
<td>28</td>
<td>c</td>
<td>44</td>
<td>s</td>
<td>60</td>
<td>8</td>
</tr>
<tr>
<td>13</td>
<td>N</td>
<td>29</td>
<td>d</td>
<td>45</td>
<td>t</td>
<td>61</td>
<td>9</td>
</tr>
<tr>
<td>14</td>
<td>O</td>
<td>30</td>
<td>e</td>
<td>46</td>
<td>u</td>
<td>62</td>
<td>+</td>
</tr>
<tr>
<td>15</td>
<td>P</td>
<td>31</td>
<td>f</td>
<td>47</td>
<td>v</td>
<td>63</td>
<td>/</td>
</tr>
</table><br />
<br />
<br />
<br />
通过本工具可以对代码进行Base64加密或者解密。Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一。 <br />
<br /> <style>
body,p,dl,dd,table,td,th,input,img,form,div,ul,li{font-family:Arial;word-break: all; font-size:12px; color:#333;}
.l{float:left}
#main{margin:10px 0 0;}
.bd{ margin-bottom:10px; width:700px;text-align:left;}
.bd .outer{border:1px solid #CCC}
.bd h3{margin:0;padding:2px 10px 0 10px;background:#F1F1F1 url(img/h3_bg.jpg) repeat-x;font-size:14px;line-height:38px;color:#538753;border:solid #FFF;border-width:0 1px;}
.line{margin:10px 10px 0;border-top:1px solid #d1d1d1;border-bottom:1px solid #fff;}
.buss{padding:0 20px 20px;line-height:28px;font-size:14px;color:#333;}
.buss h3{font-size:14px;margin:0 -20px;border-top:1px solid #d1d1d1;color:#538753;}
.buss h4{font-size:14px; margin:0 0 5px 0}
.buss p{font-size:14px; margin:6px 0;}
.buss li{padding-left:20px;}
.buss .link{padding:10px 0 0;}
.buss .link img{margin:0 10px 10px 0;}
</style> <div class="bd">
<div class="outer">
<h3>ASCII码表详解</h3>
<div class="buss">
<p>ASCII码大致可以分作三部分组成。<br>
<a href="#a1">第一部分是:ASCII非打印控制字符</a><br>
<a href="#a2">第二部分是:ASCII打印字符</a>;<br>
<a href="#a3">第三部分是:扩展ASCII打印字符</a>
</p>
<a name="a1"></a>
<h3>第一部分:ASCII非打印控制字符表</h3>
<p>ASCII表上的数字0–31分配给了控制字符,用于控制像打印机等一些外围设备。例如,12代表换页/新页功能。此命令指示打印机跳到下一页的开头。(参详ASCII码表中0-31)</p>
<a name="a2"></a>
<h3>第二部分:ASCII打印字符</h3>
<p>数字 32–126 分配给了能在键盘上找到的字符,当您查看或打印文档时就会出现。数字127代表 DELETE 命令。(参详ASCII码表中32-127)</p>
<p><strong>ASCII码表 0-127</strong></p>
<p></p><div class="t1 bgg">
<table width="100%" border="0" cellspacing="1" cellpadding="5" tr="" bgcolor="CCCCCC">
<tbody><tr bgcolor="C5D5C5">
<td width="15%">Bin</td>
<td width="10%">Dec</td>
<td width="10%">Hex</td>
<td width="40%">缩写/字符</td>
<td width="25%">解释</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00000000</td>
<td>0</td>
<td>00 </td>
<td>NUL(null)</td>
<td>空字符 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00000001</td>
<td>1</td>
<td>01</td>
<td>SOH(start of headling)</td>
<td>标题开始 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00000010</td>
<td>2</td>
<td>02</td>
<td>STX (start of text)</td>
<td>正文开始 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00000011</td>
<td>3</td>
<td>03</td>
<td>ETX (end of text)</td>
<td>正文结束 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00000100</td>
<td>4</td>
<td>04</td>
<td>EOT (end of transmission)</td>
<td>传输结束 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00000101</td>
<td>5</td>
<td>05</td>
<td>ENQ (enquiry)</td>
<td>请求 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00000110</td>
<td>6</td>
<td>06</td>
<td>ACK (acknowledge)</td>
<td>收到通知 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00000111</td>
<td>7</td>
<td>07</td>
<td>BEL (bell)</td>
<td>响铃 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00001000</td>
<td>8</td>
<td>08</td>
<td>BS (backspace)</td>
<td>退格 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00001001</td>
<td>9 </td>
<td>09</td>
<td>HT (horizontal tab)</td>
<td>水平制表符 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00001010</td>
<td>10 </td>
<td>0A </td>
<td>LF (NL line feed, new line)</td>
<td>换行键 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00001011</td>
<td>11 </td>
<td>0B </td>
<td>VT (vertical tab)</td>
<td>垂直制表符 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00001100</td>
<td>12 </td>
<td>0C </td>
<td>FF (NP form feed, new page)</td>
<td>换页键 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00001101</td>
<td>13</td>
<td>0D </td>
<td>CR (carriage return) </td>
<td>回车键 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00001110</td>
<td>14</td>
<td>0E </td>
<td>SO (shift out)</td>
<td>不用切换 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00001111</td>
<td>15</td>
<td>0F </td>
<td>SI (shift in)</td>
<td>启用切换 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00010000</td>
<td>16 </td>
<td>10</td>
<td>DLE (data link escape) </td>
<td>数据链路转义 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00010001</td>
<td>17</td>
<td>11 </td>
<td>DC1 (device control 1) </td>
<td>设备控制1</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00010010</td>
<td>18</td>
<td>12 </td>
<td>DC2 (device control 2)</td>
<td>设备控制2</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00010011</td>
<td>19 </td>
<td>13</td>
<td>DC3 (device control 3) </td>
<td>设备控制3</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00010100</td>
<td>20</td>
<td>14 </td>
<td>DC4 (device control 4)</td>
<td>设备控制4 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00010101</td>
<td>21</td>
<td>15 </td>
<td>NAK (negative acknowledge) </td>
<td>拒绝接收 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00010110</td>
<td>22</td>
<td>16 </td>
<td>SYN (synchronous idle) </td>
<td>同步空闲 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00010111</td>
<td>23 </td>
<td>17</td>
<td>ETB (end of trans. block)</td>
<td>传输块结束 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00011000</td>
<td>24 </td>
<td>18</td>
<td>CAN (cancel) </td>
<td>取消 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00011001</td>
<td>25 </td>
<td>19</td>
<td>EM (end of medium)</td>
<td>介质中断 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00011010</td>
<td>26 </td>
<td>1A</td>
<td>SUB (substitute)</td>
<td>替补 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00011011</td>
<td>27 </td>
<td>1B</td>
<td>ESC (escape) </td>
<td>溢出 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00011100</td>
<td>28 </td>
<td>1C</td>
<td>FS (file separator) </td>
<td>文件分割符 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00011101</td>
<td>29 </td>
<td>1D</td>
<td>GS (group separator) </td>
<td>分组符 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00011110</td>
<td>30 </td>
<td>1E </td>
<td>RS (record separator) </td>
<td>记录分离符 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00011111</td>
<td>31 </td>
<td>1F</td>
<td>US (unit separator)</td>
<td>单元分隔符 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00100000</td>
<td>32 </td>
<td>20</td>
<td>(space)</td>
<td>空格 </td>
</tr>
<tr bgcolor="EFF7F0">
<td>00100001</td>
<td>33 </td>
<td>21 </td>
<td>!</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00100010</td>
<td>34</td>
<td>22 </td>
<td>"</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00100011</td>
<td>35 </td>
<td>23</td>
<td>#</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00100100</td>
<td>36 </td>
<td>24</td>
<td>$</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00100101</td>
<td>37 </td>
<td>25</td>
<td>%</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00100110</td>
<td>38 </td>
<td>26</td>
<td>&amp;</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00100111</td>
<td>39 </td>
<td>27 </td>
<td>'</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00101000</td>
<td>40 </td>
<td>28</td>
<td>(</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00101001</td>
<td>41</td>
<td>29</td>
<td>)</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00101010</td>
<td>42 </td>
<td>2A</td>
<td>*</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00101011</td>
<td>43</td>
<td>2B</td>
<td>+</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00101100</td>
<td>44 </td>
<td>2C </td>
<td>,</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00101101</td>
<td>45 </td>
<td>2D</td>
<td>-</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00101110</td>
<td>46 </td>
<td>2E </td>
<td>.</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00101111</td>
<td>47 </td>
<td>2F</td>
<td>/ </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00110000</td>
<td>48 </td>
<td>30</td>
<td>0</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00110001</td>
<td>49 </td>
<td>31</td>
<td>1 </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00110010</td>
<td>50 </td>
<td>32 </td>
<td>2</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00110011</td>
<td>51 </td>
<td>33</td>
<td>3 </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00110100</td>
<td>52 </td>
<td>34 </td>
<td>4</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00110101</td>
<td>53 </td>
<td>35</td>
<td>5 </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00110110</td>
<td>54</td>
<td>36</td>
<td>6</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00110111</td>
<td>55 </td>
<td>37 </td>
<td>7 </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00111000</td>
<td>56 </td>
<td>38</td>
<td>8 </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00111001</td>
<td>57 </td>
<td>39 </td>
<td>9</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00111010</td>
<td>58 </td>
<td>3A</td>
<td>: </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00111011</td>
<td>59</td>
<td>3B</td>
<td>;</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00111100</td>
<td>60 </td>
<td>3C</td>
<td>&lt; </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00111101</td>
<td>61</td>
<td>3D</td>
<td>=</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00111110</td>
<td>62 </td>
<td>3E</td>
<td>&gt; </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>00111111</td>
<td>63 </td>
<td>3F </td>
<td>?</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01000000</td>
<td>64 </td>
<td>40</td>
<td>@ </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01000001</td>
<td>65</td>
<td>41</td>
<td>A</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01000010</td>
<td>66 </td>
<td>42 </td>
<td>B </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01000011</td>
<td>67</td>
<td>43</td>
<td>C</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01000100</td>
<td>68 </td>
<td>44 </td>
<td>D </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01000101</td>
<td>69</td>
<td>45</td>
<td>E</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01000110</td>
<td>70</td>
<td>46 </td>
<td>F</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01000111</td>
<td>71</td>
<td>47</td>
<td>G</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01001000</td>
<td>72 </td>
<td>48</td>
<td>H </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01001001</td>
<td>73</td>
<td>49</td>
<td>I</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01001010</td>
<td>74 </td>
<td>4A</td>
<td>J </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01001011</td>
<td>75</td>
<td>4B</td>
<td>K</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01001100</td>
<td>76 </td>
<td>4C </td>
<td>L </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01001101</td>
<td>77</td>
<td>4D</td>
<td>M</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01001110</td>
<td>78 </td>
<td>4E</td>
<td>N </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01001111</td>
<td>79</td>
<td>4F</td>
<td>O</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01010000</td>
<td>80 </td>
<td>50</td>
<td>P </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01010001</td>
<td>81</td>
<td>51</td>
<td>Q</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01010010</td>
<td>82</td>
<td>52 </td>
<td>R</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01010011</td>
<td>83</td>
<td>53</td>
<td>S</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01010100</td>
<td>84 </td>
<td>54</td>
<td>T </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01010101</td>
<td>85 </td>
<td>55 </td>
<td>U</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01010110</td>
<td>86 </td>
<td>56</td>
<td>V </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01010111</td>
<td>87 </td>
<td>57</td>
<td>W</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01011000</td>
<td>88 </td>
<td>58</td>
<td>X </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01011001</td>
<td>89</td>
<td>59 </td>
<td>Y</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01011010</td>
<td>90 </td>
<td>5A</td>
<td>Z </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01011011</td>
<td>91 </td>
<td>5B</td>
<td>[ </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01011100</td>
<td>92</td>
<td>5C</td>
<td>\</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01011101</td>
<td>93 </td>
<td>5D</td>
<td>] </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01011110</td>
<td>94</td>
<td>5E </td>
<td>^</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01011111</td>
<td>95 </td>
<td>5F</td>
<td>_</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01100000</td>
<td>96 </td>
<td>60</td>
<td>` </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01100001</td>
<td>97</td>
<td>61 </td>
<td>a</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01100010</td>
<td>98 </td>
<td>62</td>
<td>b </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01100011</td>
<td>99 </td>
<td>63</td>
<td>c </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01100100</td>
<td>100</td>
<td>64</td>
<td>d</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01100101</td>
<td>101 </td>
<td>65</td>
<td>e </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01100110</td>
<td>102 </td>
<td>66</td>
<td>f</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01100111</td>
<td>103 </td>
<td>67</td>
<td>g </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01101000</td>
<td>104 </td>
<td>68 </td>
<td>h</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01101001</td>
<td>105 </td>
<td>69</td>
<td>i </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01101010</td>
<td>106</td>
<td>6A</td>
<td>j</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01101011</td>
<td>107 </td>
<td>6B</td>
<td>k </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01101100</td>
<td>108 </td>
<td>6C </td>
<td>l</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01101101</td>
<td>109 </td>
<td>6D </td>
<td>m</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01101110</td>
<td>110</td>
<td>6E</td>
<td>n</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01101111</td>
<td>111 </td>
<td>6F</td>
<td>o </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01110000</td>
<td>112 </td>
<td>70 </td>
<td>p</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01110001</td>
<td>113 </td>
<td>71</td>
<td>q </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01110010</td>
<td>114 </td>
<td>72 </td>
<td>r</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01110011</td>
<td>115 </td>
<td>73</td>
<td>s </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01110100</td>
<td>116 </td>
<td>74 </td>
<td>t</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01110101</td>
<td>117 </td>
<td>75 </td>
<td>u</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01110110</td>
<td>118 </td>
<td>76</td>
<td>v</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01110111</td>
<td>119 </td>
<td>77</td>
<td>w </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01111000</td>
<td>120 </td>
<td>78</td>
<td>x</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01111001</td>
<td>121 </td>
<td>79</td>
<td>y </td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01111010</td>
<td>122 </td>
<td>7A </td>
<td>z</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01111011</td>
<td>123 </td>
<td>7B</td>
<td>{</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01111100</td>
<td>124 </td>
<td>7C</td>
<td>|</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01111101</td>
<td>125 </td>
<td>7D</td>
<td>}</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01111110</td>
<td>126 </td>
<td>7E </td>
<td>~</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="EFF7F0">
<td>01111111</td>
<td>127 </td>
<td>7F </td>
<td>DEL (delete)</td>
<td>删除 </td>
</tr>
</tbody></table></div><p></p>
<a name="a3"></a>
<h3>第三部分:扩展ASCII打印字符</h3>
<p>扩展的ASCII字符满足了对更多字符的需求。扩展的ASCII包含ASCII中已有的128个字符(数字0–32显示在下图中),又增加了128个字符,总共是256个。即使有了这些更多的字符,许多语言还是包含无法压缩到256个字符中的符号。因此,出现了一些ASCII的变体来囊括地区性字符和符号。例如,许多软件程序把ASCII表(又称作ISO8859-1)用于北美、西欧、澳大利亚和非洲的语言。</p>
<p><img src="http://www.asciima.com/img/ascii127-255.jpg"></p>
</div>
</div>
</div> </center>
</BODY></HTML>

出处:

http://www1.tc711.com/tool/BASE64.htm

http://www.asciima.com/

JS实现——Base64编码解码,带16进制显示的更多相关文章

  1. pyserial 16进制显示与发送

    pyserial 16进制显示与发送 http://www.centoscn.com/python/2013/0817/1320.html 十六进制显示的实质是把接收到的字符诸葛转换成其对应的ASCI ...

  2. Qt 将字符串转成16进制显示

    最近项目用到了需要将字符串转换成16进制显示.这玩意折腾了一上午. 首先,数据块内容 struct UserData { char Head[3] = {'X','J','J'}; char Flag ...

  3. JS一行代码,生成一个16进制随机颜色,简单粗暴。

    var color = '#'+ Math.random().toString(16).substr(-6); document.body.style.backgroundColor = color; ...

  4. 原生JS代码实现随机产生一个16进制的颜色值

    封装一个函数 function getColor() { var str = "#"; //一个十六进制的值的数组 var arr = ["0", " ...

  5. c# 16进制显示转化

    非原创. 接收16进制数据,在TextBox委托显示: private void readPortandShow() { char[] HexChar = { '0', '1', '2', '3', ...

  6. JS的base64编码解码

    Unicode问题解法 有个小坑是它只支持ASCII. 如果你调用btoa("中文")会报错: Uncaught DOMException: Failed to execute ' ...

  7. js简单Base64编码解码

    var str = 'javascript'; window.btoa(str) //转码结果 "amF2YXNjcmlwdA==" window.atob("amF2Y ...

  8. 原生js实现Base64编码解码

    注:ie10+ var str = window.btoa("liusong"); console.log(str); var s = window.atob("bGl1 ...

  9. c# 读取二进制文件并转换为 16 进制显示

    string result = ""; string filePath = "xxx.bin"; if (File.Exists(filePath)) { by ...

随机推荐

  1. 基于Java实现的快速排序

    简述 快速排序是一种排序执行效率很高的排序算法,它利用分治法来对待排序序列进行分治排序,它的思想主要是通过一趟排序将待排记录分隔成独立的两部分,其中的一部分比关键字小,后面一部分比关键字大,然后再对这 ...

  2. JAVA基础之File类

    个人理解: File是个文件类,可以用其增加.删除.查找某种类型的文件或者文件夹,同时根据其成员变量的特点可以综合利用,避免出现跨系统的时候出现错误,并且查找时最好输入绝对路径,以免出现不存在的文件. ...

  3. AJPFX辨析GBK和UTF8的区别

    GBK编码:是指中国的中文字符,其它它包含了简体中文与繁体中文字符,另外还有一种字符“gb2312”,这种字符仅能存储简体中文字符. UTF-8编码:它是一种全国家通过的一种编码,如果你的网站涉及到多 ...

  4. vue2.0:(十)、外卖App商品组件部分和better-scroll

    本篇中继续来给大家介绍外卖App制作中的商品组件的部分. 好,第一步,我们把商品的大致框架在goods.vue中搭建出来: menu-wrapper是左边菜单栏,foods-wrapper是右边商品栏 ...

  5. vue-cli3项目优化首页加载过慢的一些心得

    博主最近发现vue-cli3项目做完后,点击首页加载时间好久啊,一般都要3-5s.这样的加载时间博主自己都受不了,所以就有了这个随笔,将自己的一些研究心得分享给大家. 首先推荐大家下载一个webpac ...

  6. Kendo MVVM (一) 概述

    Kendo MVVM (一) 概述 Model View ViewModel (MVVM)  是开发人员经常使用的一种设计模式,以实现数据模型(Model)和视图(View)的分离.MVVM 中的 V ...

  7. ptxas fatal : Unresolved extern function Error 255

    This question already has an answer here: External calls are not supported - CUDA 1 answer I am tryi ...

  8. npm相关命令

    npm install npm install log4js npm list npm list log4js #查看模板安装版本 npm install log4js@1.0.1 #指定模块版本安装 ...

  9. C++ string 类型提取字符串

    在某些情况下需要对输入的字符串进行处理,提取其中的需要的信息. 比如在linux中输入"mkdir test",新建test文件夹,就需要提取其中的test字符. 提取的方法需要b ...

  10. Linux Shell流程例子

    #!/bin/bash read -p "input a dight:"echo $REPLY DATE=`date`echo "DATE is ${DATE}" ...