在网上找了个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. ES5数组遍历

    reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值. array.reduce(function(total, currentValue, curren ...

  2. linux下指定特定用户执行命令

    虽然很简单但是百度找的大部分不能用,我是没找到,后来从google找到的 sudo -H -u www bash -c 'nohup /home/web/ke/upfileserver /home/w ...

  3. POJ 3260 The Fewest Coins 最少硬币个数(完全背包+多重背包,混合型)

    题意:FJ身上有各种硬币,但是要买m元的东西,想用最少的硬币个数去买,且找回的硬币数量也是最少(老板会按照最少的量自动找钱),即掏出的硬币和收到的硬币个数最少. 思路:老板会自动找钱,且按最少的找,硬 ...

  4. (五)SpringMVC之使用Kaptcha实现验证码功能

    一.什么是Kaptcha Kaptcha是Google开发的用于自动生成验证码的插件. 二.怎么导入Kaptcha ① 如果没有用Maven管理工具的话就直接导入包(可以直接下载:pau8) http ...

  5. Codeforces 786E. ALT 最小割+倍增

    E. ALT http://codeforces.com/problemset/problem/786/E 题意: 给出一棵 n 个节点的树与 m 个工人.每个工人有一条上下班路线(简单路径),一个工 ...

  6. SAP Cloud for Customer的Account Team里的role如何配置

    Account Team标签页里点击Add按钮: 这些下拉菜单里的role在哪里配置? 在business configuration工作中心:Implementation projects-> ...

  7. UVA 11627 Slalom(二分)

    二分,判断的时候,一个点一个点的考虑肯定是不行啦,考虑的单位是一个区间, 每次左端点尽量向左边移动,右端点尽量向右,得到下次可以达到的范围,检查一下和下一个区间有没有交集. #include<b ...

  8. javascript日期函数

    时间对象是一个我们经常要用到的对象,无论是做时间输出.时间判断等操作时都与这个对象离不开.除开JavaScript中的时间对象外,在VbScript中也有许多的时间对象,而且非常好用.下面还是按照我们 ...

  9. 禁止DataGridView控件中添加和删除行

    实现效果: 知识运用: DataGridView控件的AllowUserToAddRows AllowUserDeleteRows和ReadOnly属性 实现代码: private void btn_ ...

  10. 2018.4.22 深入理解Java的接口和抽象类

    前言 对于面向对象编程来说,抽象是他的一大特征之一.在Java中,可以通过两种形式来体现oop 的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初雪的时候会以为他们可以随意互 ...