的区分_javascript本领_脚本之家

 新葡新京     |      2020-02-05 13:16

escape() 方法

MSDN JScript Reference中如是说:

The escape method returns a string value that contains the contents of [的区分_javascript本领_脚本之家。the argument]. All spaces, punctuation, accented characters, and any other non-ASCII characters are replaced with %xx encoding, where xx is equivalent to the hexadecimal number representing the character. For example, a space is returned as "%20."

在下译:escape方法以Unicode格式再次来到三个包涵传入参数内容的string类型的值。 Escape方法会将盛传参数中具备的空格、标点符号、重音字符以致别的任何非ASCII字符替换为%xx的编码方式,在那之中xx与其所表示的字符的16进制数表示方式相仿。如空格字符的16进制表示情势为0x20,则那个时候xx应该为20,即escape 再次回到“%20”。

Mozilla Developer Core Javascript Guide中如是说:

The escape and unescape functions let you encode and decode strings. The escape function returns the hexadecimal encoding of an argument in the ISO Latin character set. The unescape function returns the ASCII string for the specified hexadecimal encoding value.

区区译:escape和unescape方法能够帮助你编码和平解决码字符串。escape方法对于ISO Latin字符聚焦的字符组成的参数,重回其16进制编码。相呼应的,unescape方准则能将16进制编码格局的参数转产生为其ASCII码情势。

encodeURI()方法

MSDN JScript Reference中如是说:

The encodeURI method returns an encoded URI. If you pass the result to decodeURI, the original string is returned. The encodeURI method does not encode the following characters: ":", "/", ";", and "?". Use encodeURIComponent to encode these characters.

区区译:encodeUTiguanI方法重回多个透过编码的U陆风X8I。假若将encodeU牧马人I方法的编码结果传递给decodeU奥迪Q7I方法作参数,则能得到原始的未编码的字符串。须求介怀到是encodeURI方法不编码如下字符":", "/", ";", and "?"。假使想要编码这一个字符,请使用encodeU昂科拉IComponent方法。

Mozilla Developer Core Javascript Guide中如是说:

Encodes a Uniform Resource Identifier by replacing each instance of certain characters by one, two, or three escape sequences representing the UTF-8 encoding of the character.

区区译:通过将种种归于特定的字符群集的字符替换为四个、两个也许三个(为啥是“叁个、四个可能多少个”本身也还未搞懂,望高人赐教)使用UTF-8编码来表示那个字符的escape系列来编码多个UPAJEROI。如 ~!@#$%^&*(){}[]=:/,;?+'"\ 将被沟通为 ~!@#$%25%5E&*()%7B%7D%5B%5D=:/,;?+'%22%5C

encodeURIComponent()方法

MSDN JScript Reference中如是说:

The encodeURIComponent method returns an encoded URI. If you pass the result to decodeURIComponent, the original string is returned. Because the encodeURIComponent method encodes all characters, be careful if the string represents a path such as /folder1/folder2/default.html. The slash characters will be encoded and will not be valid if sent as a request to a web server. Use the encodeURI method if the string contains more than a single URI component.

在下译:encodeURubiconIComponent方法重返叁个编码过的U奥迪Q5I。假使将encodeURubiconIComponent方法的编码结果传递给encodeU奥迪Q7IComponent方法作参数,则能获得原始的未编码的字符串。因为encodeU路虎极光IComponent方法会编码全体的字符,所以若是待编码的字符串是用来表示二个路径(如/dir1/dir2/index.htm)时,就势须要小心使用了。‘/'符号会被其编码之后,将不再是四个一蹴而就的路径标志符,所以不可能被web服务器精确地分辨。当字符串包括二个独立的UHavalI component的时候,请使用此方法。

Mozilla Developer Core Javascript Guide中如是说:

Encodes a Uniform Resource Identifier component by replacing each instance of certain characters by one, two, or three escape sequences representing the UTF-8 encoding of the character.

区区译:通过将每种归属特定的字符集结的字符替换为贰个、四个或许四个(为啥是“四个、七个也许多个”本身也从不搞懂,望高人赐教)使用UTF-8编码来代表那么些字符的escape体系来编码三个UENVISIONIComponent。

有怎么样不相同?什么日期使用?

经过地点的介绍能够看看,MS的文书档案分明要比Mozilla详细、易懂一些,不过它们表达的都以三个情趣。可是escape和 encodeU宝马7系IComponent(卡塔尔(قطر‎有哪些异同,它们各自适用于这种特定的景况吗?

escape方法并不编码字符+。而小编辈精晓,在客户提交的表单字段中,如若有空格,则会被转接为+字符,而服务器深入解析的时候则会感到+号代表空格。由于那么些毛病,escape方法并不能够科学地管理全数的非ASCII字符,你应该尽量制止使用escape方法,代替他,你最棒接受encodeUWranglerIComponent不编码的字符:@*/+

对峙于选取escape方法,使用encodeUOdysseyI方法会显得更职业一些。当您要求编码一整个UTucsonI的时候,你能够使用此方法,因为UEnclaveI中的合法字符都不会被编码转变。需求小心到是字符'也是ULacrosseI中的合法字符,所以也不会被编码调换。

encodeUXC60I(State of Qatar 不编码的字符: ~!@#@{content}*()=:/,;?+'

encodeU奥迪Q5IComponent方法在编码单个ULANDIComponent应当是最常用的。供给专一到是字符'也是UTiggoI中的合法字符,所以也不会被编码转变。

encodeURIComponent'