在网上找了个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. 在 cell 中获取 textFlied内容的使用

    当您读到这里时,建议先下载demo,不懂再参考博客.在iOS项目开发中,容易遇到各种个人信息填写.比如微信中设置个人信息,等.这种方式是进行控制器跳转,代理或者block传值,这种比较容易,符合常规的 ...

  2. Flat UI theme--扁平化的UI

    项目地址:点击打开 支持版本: jQuery Mobile 1.3.2 使用很简单,前提是你的前端是在jquery-mobile的基础上开发的,然后导入相应的css文件.img文件和js文件即可. 案 ...

  3. 终于有人把P2P、P2C、O2O、B2C、B2B、C2C的区别讲透了!还有许多其它类别的类型分享

    平时在看招聘时,经常看到我们是什么B2C电子商务网站,但是一直不知是啥意思,今天在WEB开发者上面看到这篇文章,就是知道了个所以然,以记录分享. P2P.P2C .O2O .B2C.B2B. C2C, ...

  4. Vue2.0 官方文档学习笔记

    VUE2.0官方文档 基础部分: 1.VUE简介 Vue是一个基于MVVM的框架,其中M代表数据处理层,V代表视图层即我们在Vue组件中的html部分,VM即M和V的结合层,处理M层相应的逻辑数据,在 ...

  5. Jmeter监控内存及CPU等

    在进行性能测试时需要查看内存和CPU等信息来判断系统瓶颈,关于CPU和内存的监控,goole开发了一款专门的jmeter插件,弥补了Jmeter这方面的不足,下面来介绍这款插件-JmeterPlugi ...

  6. UVA 562 Dividing coins 分硬币(01背包,简单变形)

    题意:一袋硬币两人分,要么公平分,要么不公平,如果能公平分,输出0,否则输出分成两半的最小差距. 思路:将提供的整袋钱的总价取一半来进行01背包,如果能分出出来,就是最佳分法.否则背包容量为一半总价的 ...

  7. 【Python图像特征的音乐序列生成】关于mingus一个bug的修复,兼改进情感模型

    mingus在输出midi文件的时候,使用这样的函数: from mingus.containers import NoteContainer from mingus.midi import midi ...

  8. CF Gym 100463A (树状数组求逆序数)

    题意:给你一个序列,和标准序列连线,求交点数. 题解:就是求逆序对个数,用树状数组优化就行了.具体过程就是按照顺序往树状数组了插点(根据点的大小),因为第i大的点应该排在第i位,插进去的时候他前面本该 ...

  9. 2018.5.6 解决问题:oracle------ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务

    解决问题:ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 或者是重启电脑之后无法进入控制台企业管理器(OEM)图形化界面(重新添加注入监听器就行了 文件listener.org) ...

  10. 字符编码:BSTR

    typedef wchar_t WCHAR; typedef WCHAR OLECHAR; typedef OLECHAR __RPC_FAR *BSTR;;