在网上找了个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. docker部署mysql远程连接 解决1251 client does not support ..

    现象:用虚拟机上Docker启动mysql之后无法在本地安装的navicat上远程连接已启动的mysql,错误截图: 原因:mysql 8.0 默认使用 caching_sha2_password 身 ...

  2. CF713C Sonya and Problem Wihtout a Legend & hihocoder1942 单调序列

    这两个题是一样的,不过数据范围不同. 思路1: 在CF713C中,首先考虑使生成序列单调不下降的情况如何求解.因为单调上升的情况可以通过预处理将a[i]减去i转化成单调不下降的情况. 首先,生成的序列 ...

  3. Kendo MVVM 数据绑定(十一) Value

    Kendo MVVM 数据绑定(十一) Value Value 绑定可以把 ViewModel 的某个属性绑定到 DOM 元素或某个 UI 组件的 Value 属性.当用户修改 DOM 元素或 UI ...

  4. i-nex安装教程

    sudo add-apt-repository ppa:i-nex-development-team/stable sudo apt-get updatesudo apt-get i-nex

  5. Autoit3 如何捕足控件

    以任务管理器为例,在命令行提示符下输入taskmgr.exe 接下来识别这个窗口上的控件 在AU3  中提供了一个捕捉控件的工具是Au3Info.exe 这里记录了控件的标题,控件的类型,控件的坐标和 ...

  6. [Git]常用的Git命令行

    Commit的用法 git init [+项目名] git add . (注意这里在add后面的空格和点是不能省略的) git status git commit -m “message”(这里的me ...

  7. 三维GIS-室内寻径功能实现

    期末,要交一个大作业,正巧之前跑国图借书的时候,晕头转向的,国图内居然没有导航!!!借这个机会做一个室内导航的demo,只是半成品,还需要加入室内定位,匹配一下坐标才能在实际中使用. demo:利用蜂 ...

  8. [uva816]AbbottsRevenge Abbott的复仇(经典迷宫BFS)

    这题思路就普通的BFS加上一个维度朝向,主要是要注意输入,输出,以及细节的处理 #include<cstdio> #include<cstring> #include<q ...

  9. Kunernetes集群架构与组件

    架构如图: master节点:主要是集群控制面板的功能,来管理整个集群,包括全局的角色,调度,都是在master节点进行控制 有三个组件: API Server:  是 k8s提供的一个统一入口,它是 ...

  10. python_91_正则表达式

    常用的正则表达式: '.' 默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行 '^' 匹配字符开头,若指定flags MULTILINE,这种也可以匹配上(r& ...