js常见编码解码

JavaScript09

js常见编码解码,第1张

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

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生成新的由十六进制转义序列替换的字符串

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

js中有三个函数是用于编码的,他们是 escape(),encodeURI(),encodeURIComponent()函数。

而相对应的解码函数式:unescape,decodeURI,decodeURIComponent 。

对 String 对象编码以便它们能在所有计算机上可读。

escape 方法返回一个包含了 charstring 内容的字符串值( Unicode 格式)。所有空格、标点、重音符号以及其他非 ASCII 字符都用 %xx 编码代替,其中 xx 等于表示该字符的十六进制数。例如,空格返回的是 "%20" 。

字符值大于 255 的以 %uxxxx 格式存储。

**注意 escape 方法不能够用来对统一资源标示码 (URI) 进行编码。对其编码应使用 encodeURI 和encodeURIComponent 方法。

(转)该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。其他所有的字符都会被转义序列替换。

但是会编码(/?:@&=+$,#)这些在地址栏中经常用到的特殊字符

**

将文本字符串编码为一个有效的统一资源标识符 (URI)。

说明:

encodeURI 方法返回一个编码的 URI。如果您将编码结果传递给 decodeURI,那么将返回初始的字符串。encodeURI 方法不会对下列字符进行编码:":"、"/"、"" 和 "?"。请使用 encodeURIComponent 方法对这些字符进行编码。

此方法是不会将(/?:@&=+$,#)这些字符编码

说明:URIComponent 是一个完整的 URI 的一部分。

如果 encodedURIString 无效,将产生一个 URIError。

该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

但是会编码(/?:@&=+$,#)这些在地址栏中经常用到的特殊字符

encodeURI 函数对 URI 进行完整的编码

encodeURIComponent 函数假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。

如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码。

所以encodeURIComponent比encodeURI编码的范围更大。

1、如果只是编码字符串,使用escape

2、如果需要编码整个URL,然后需要使用这个URL,使用encodeURl

3、如果需要编码URL中的参数,使用encodeURlComponent

1、string --->base-64转码

2、base64转码的对象只能是字符串,不能对unicode转码

对于汉字,这就要使用window.encodeURIComponent和window.decodeURIComponent