特殊字符的处理.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
特殊字符的处理

特殊字符的处理 1. URL特殊字符 特殊字符的URL传递问题包含中文的URL参数,特殊字符的URL参数,以及页面链接的URL拼接中特殊字符三方面的情况,这三种情况采用的方法如下 1、encodeURI 2、encodeURIComponent 3、URLEncoder与URLDecoder 其中(1)(2)为页面操作,(3)为java代码操作使用。这三种方式都会采用utf8来进行编码与解码,因此项目最好采用UTF8则更佳。 1.1 encodeURI与encodeURIComponent encodeURI 编码整个URI,对URI中的合法字符不编码(包括中文),对特定字符进行编码,如空格等。因此如果URL中包含空格则使用其进行编码传递 encodeURIComponent 编码URL中指定参数,对参数中的中文、特殊字符进行转义。因此如果URL中包含中文,,/?:@=+$#等特殊字符则使用其进行编码传递 示例: document.write(encodeURI()+ br /) document.write(encodeURI(/My first/)) document.write(encodeURI(,/?:@=+$#)) document.write(encodeURIComponent(,/?:@=+$#)) 输出分别为: /My%20first/ ,/?:@=+$# %2C%2F%3F%3A%40%26%3D%2B%24%23 由此可见空格符对于encodeURI是特定字符会被转义,而,/?:@=+$#等字符会视为合法字符传递,利用这点我们可以在URL中需要包含,/?:@=+$#等字符的时候采用encodeURI处理,这样响应一方就能正确的获得这些字符。如果不使用encodeURI则无法获取到这些字符。当然也可以采用直接将,/?:@=+$#等字符转码来保证响应方能正确获得这些字符,例如 ?usrpass=WZ+vS 采用转码?usrpass=WZ%2BvS url显示则出现%2B字样,当然响应方在读取时还是会得到+,特殊字符对应的码表参看附录。 采用?usrpass=+encodeURI(WZ+vS) url显示仍是原样 采用?usrpass=+encodeURIComponent(WZ+vS) url跟手动转码一致出现%2B字样,同样响应方能读取到参数的值+ 1.2 URIEncoder与URIDecoder URLEncoder用于编码,URLDecoder用于解码。它们的作用主要是针对特殊字符要进地网络传递或参数传递时,保障响应方能正确获得原来的字符内容。 URLEncoder 对 String 编码时,使用以下规则: 字母数字字符 a 到 z、A 到 Z 和 0 到 9 保持不变。 特殊字符 .、-、* 和 _ 保持不变。 空格字符 转换为一个加号 +。 所有其他字符都是不安全的,因此首先使用一些编码机制将它们转换为一个或多个字节。然后每个字节用一个包含 3 个字符的字符串 %xy 表示,其中 xy 为该字节的两位十六进制表示形式。推荐的编码机制是 UTF-8。但是,出于兼容性考虑,如果未指定一种编码,则使用相应平台的默认编码。 例如,使用 UTF-8 编码机制,字符串 The string ü@foo-bar 将转换为 The+string+%C3%BC%40foo-bar,因为在 UTF-8 中,字符 ü 编码为两个字节,C3 (十六进制)和 BC (十六进制),字符 @ 编码为一个字节 40 (十六进制)。 该转换过程正好与 URLEncoder 类使用的过程相反。假定已编码的字符串中的所有字符为下列之一:a 到 z、A 到 Z、0 到 9 和 -、_、. 以及 *。允许有 % 字符,但是将它解释为特殊转义序列的开始。 转换中使用以下规则: 字母数字字符 a 到 z、A 到 Z 和 0 到 9 保持不变。 特殊字符 .、-、* 和 _ 保持不变。 加号 + 转换为空格字符 。 将把 %xy 格式序列视为一个字节,其中 xy 为 8 位的两位十六进制表示形式。然后,所有连续包含一个或多个这些字节序列的子字符串,将被其编码可生成这些连续字节的字符所代替。可以指定对这些字符进行解码的编码机制,或者如果未指定的话,则使用平台的默认编码机制。 3 页 共 4 页

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档