js常见编码解码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js常见编码解码相关的知识,希望对你有一定的参考价值。

参考技术A

将每一个字节表示的十六进制表示的内容,用字符串来显示。

UTF(UCS Transformation Format)规范,常见的UTF规范包括UTF-8、UTF-7、UTF-16

使用2个字节表示已经有码点的字符。UCS-2只是一个编码方案,UTF-16却要用于实际的传输

UCS-4就是用4个字节(实际上只用了31位,最高位必须为0)编码
js使用的编码

中日韩统一表意文字

每个汉字由两个字节构成
是针对繁体汉字的汉字编码,台湾地区常用,共收录13,060个汉字

该函数能解码由创建或其它流程得到的统一资源标识符(URI)。

方法用于解码由方法或者其它类似方法编码的部分统一资源标识符(URI)。

escape生成新的由十六进制转义序列替换的字符串

计算生成一个新的字符串,其中的十六进制转义序列将被其表示的字符替换。

常见编码解码脚本

在平时我们会遇到各种各样的编码,在这里,我总结了一些常见的编码,并不是很全

尝试着做了个编码解码的汇总,并且写了个脚本出来,由于python功底不是很强,所以可能会有不到之处,还望各位多多指正

附上脚本:

  1 #-*-coding:utf-8-*-
  2 #author:hell0_w
  3 #本人博客:http://hell0w.cnblogs.com/
  4 
  5 import base64
  6 import bubblepy
  7 import urllib
  8 import quopri
  9 import cgi
 10 import HTMLParser
 11 
 12 #加密函数:
 13 def base16_encode(content):
 14     return base64.b16encode(content)
 15 def base32_encode(content):
 16     return base64.b32encode(content)
 17 def base64_encode(content):
 18     return base64.b64encode(content)
 19 def BubbleBabble_encode(content):
 20     return bubblepy.BubbleBabble().encode(content)
 21 def url_encode(content):
 22     return urllib.quote(content)
 23 def dec_binary(content):
 24     list = []
 25     for i in content.split(\' \'):
 26         list.append(bin(int(i)).replace(\'0b\',\'\'))
 27     return list
 28 def str_binary(content):
 29     list = []
 30     for i in content:
 31         list.append(ord(i))
 32     list1 = []
 33     for j in list:
 34         list1.append(bin(int(j)).replace(\'0b\',\'\'))
 35     return list1
 36 def quoted_printable_encode(content):
 37     return quopri.encodestring(content)
 38 def HtmlParser_encode(content):
 39     return cgi.escape(content)
 40 
 41 
 42 #解密函数:
 43 def base16_decode(content):
 44     return base64.b16decode(content)
 45 def base32_decode(content):
 46     return base64.b32decode(content)
 47 def base64_decode(content):
 48     return base64.b64decode(content)
 49 def BubbleBabble_decode(content):
 50     return bubblepy.BubbleBabble().decode(content)
 51 def url_decode(content):
 52     return urllib.unquote(content)
 53 def binary_dec(content):
 54     list = []
 55     for i in content.split(\' \'):
 56         list.append(int(i,2))
 57     return list
 58 def binary_str(content):
 59     list = []
 60     for i in content.split(\' \'):
 61         list.append(int(i,2))
 62     list1 =[]
 63     for j in list:
 64         list1.append(chr(j))
 65     return \'\'.join(list1)
 66 def quoted_printable_decode(content):
 67     return quopri.decodestring(content)
 68 def HtmlParser_decode(content):
 69     return HTMLParser.HTMLParser().unescape(content)
 70 
 71 
 72 def encode():
 73     print "[1]:base16编码"
 74     print "[2]:base32编码"
 75     print "[3]:base64编码"
 76     print "[4]:BubbleBabble编码"
 77     print "[5]:url编码"
 78     print "[6]:十进制转二进制"
 79     print "[7]:字符串转二进制"
 80     print "[8]:quoted-printable编码"
 81     print "[9]:HTML实体编码"
 82     operation = input("请选择:")
 83     strs = raw_input("请输入需要加密的字符串:")
 84     if operation == 1:
 85         try:
 86             print "[+]加密的结果为:%s " % base16_encode(strs)
 87         except Exception,e:
 88             print e
 89 
 90     elif operation == 2:
 91         try:
 92             print "[+]加密的结果为:%s " % base32_encode(strs)
 93         except Exception,e:
 94             print e
 95 
 96     elif operation == 3:
 97         try:
 98             print "[+]加密的结果为:%s " % base64_encode(strs)
 99         except Exception,e:
100             print e
101 
102     elif operation == 4:
103         try:
104             print "[+]加密的结果为:%s " % BubbleBabble_encode(strs)
105         except Exception,e:
106             print e
107     
108     elif operation == 5:
109         try:
110             print "[+]加密的结果为:%s " % url_encode(strs)
111         except Exception,e:
112             print e
113         
114     elif operation == 6:
115         try:
116             print "[+]加密的结果为:%s " % dec_binary(strs)
117         except Exception,e:
118             print e
119 
120     elif operation == 7:
121         try:
122             print "[+]加密的结果为:%s " % str_binary(strs)
123         except Exception,e:
124             print e
125     
126     elif operation == 8:
127         try:
128             print "[+]加密的结果为:%s " % quoted_printable_encode(strs)
129         except Exception,e:
130             print e
131     
132     elif operation == 9:
133         try:
134             print "[+]加密的结果为:%s " % HtmlParser_encode(strs)
135         except Exception,e:
136             print e
137     else:
138         print "error!"
139         encode()
140     
141 
142 def decode():
143     print "[1]:base16解码"
144     print "[2]:base32解码"
145     print "[3]:base64解码"
146     print "[4]:BubbleBabble解码"
147     print "[5]:url解码"
148     print "[6]:二进制转十进制"
149     print "[7]:二进制转字符串"
150     print "[8]:quoted-printable解码"
151     print "[9]:HTML实体解码"
152     operation = input("请选择:")
153     strs = raw_input("请输入需要解密的字符串:")
154     if operation == 1:
155         try:
156             print "[+]解密的结果为:%s " % base16_decode(strs)
157         except Exception,e:
158             print "Error!Not base16 encoding!"
159 
160     elif operation == 2:
161         try:
162             print "[+]解密的结果为:%s " % base32_decode(strs)
163         except Exception,e:
164             print "Error!Not base32 encoding!"
165 
166     elif operation == 3:
167         try:
168             print "[+]解密的结果为:%s " % base64_decode(strs)
169         except Exception,e:
170             print "Error!Not base64 encoding!"
171 
172     elif operation == 4:
173         try:
174             print "[+]解密的结果为:%s " % BubbleBabble_decode(strs)
175         except Exception,e:
176             print "Error!Not BubbleBabble encoding!"
177     
178     elif operation == 5:
179         try:
180             print "[+]解密的结果为:%s " % url_decode(strs)
181         except Exception,e:
182             print "Error!Not url encoding!"
183         
184     elif operation == 6:
185         try:
186             print "[+]解密的结果为:%s " % binary_dec(strs)
187         except Exception,e:
188             print "Error!Not binary encoding!"
189 
190     elif operation == 7:
191         try:
192             print "[+]解密的结果为:%s " % binary_str(strs)
193         except Exception,e:
194             print "Error!Not binary encoding!"
195     
196     elif operation == 8:
197         try:
198             print "[+]解密的结果为:%s " % quoted_printable_decode(strs)
199         except Exception,e:
200             print "Error!Not quoted-printable encoding!"
201     
202     elif operation == 9:
203         try:
204             print "[+]解密的结果为:%s " % HtmlParser_decode(strs)
205         except Exception,e:
206             print "Error!Not HtmlParser encoding!"
207     else:
208         print "error!"
209         decode()
210 
211 
212 def main():
213     print "[1]:加密"
214     print "[2]:解密"
215     operation = input("请选择:")
216     if operation == 1:
217         encode()
218     elif operation == 2:
219         decode()
220     else:
221         print "error!"
222         main()
223     
224 if __name__ == \'__main__\':
225     main()

运行示例:

加密:

解密:

 本文固定连接:http://www.cnblogs.com/hell0w/p/7512211.html  转载请注明出处,谢谢!

以上是关于js常见编码解码的主要内容,如果未能解决你的问题,请参考以下文章

url的编码和解码方式

url的编码和解码方式

js处理url中的请求参数(编码/解码)

JS中编码和解码的总结

常见编码解码脚本

用JS进行Base64编码、解码