经典面试题-常用的字符转码方式什么?举例说明

2019-11-18 13:05:54 浏览数 (1)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_42528266/article/details/103106284

  • 1.escape方法对String对象编码,escape方法返回一个包含了"转义序列"的字符串值。除了ASCII字母和数字,以及这几个符号 *±/.@_外(共有10 52 7=69个字符不会被编码),其他所有的字符都会被转义序列替换,标准ASCII码内的字符(0-127)和扩展的ASCII码内的字符(128-255)都用%xx编码形式代替。字符值大于255的以unicode%uxxxx格式存储。

注意 :escape方法不能够用来对统一资源标示符URI进行编码,因为=&?#等会被编码.

对URI编码应使用encodeURI,对URI参数用encodeURIComponent方法。

  • 2.encodeURI除了ASCII字母和数字,以及这几个符号 *±/.@_!#$&’(),:=?~外(共有10 52 20=82个字符不会被编码),其他所有的字符都会被转义序列替换,标准ASCII码内的字符(0-127)和扩展的ASCII码内的字符(128-255)都用%xx编码形式代替。字符值大于255的以utf-8多字节%xx格式存储。在URI中有特殊意义的字符如?=&等不会被编码。
  • 3.encodeURIComponent除了ASCII字母和数字,以及这几个符号 *-_.~!’()外(共有10 52 9=71个字符不会被编码),其他所有的字符都会被转义序列替换,标准ASCII码内的字符(0-127)和扩展的ASCII码内的字符(128-255)都用%xx编码形式代替。字符值大于255的以utf-8多字节%xx格式存储。可以看到?=&等在URI中有特殊意义的字符也会被编码。encodeURIComponent方法在编码单个URIComponent(指请求参数)应当是最常用的,它可以将参数中的中文、特殊字符进行转义,而不会影响整个URL。

0 人点赞