zoukankan      html  css  js  c++  java
  • 特殊字符简单编码

    1. 前端 js

    1.1编码 与 解码函数

    js对文字进行编码涉及3个函数:escape , encodeURI , encodeURIComponent,
                       相应3个解码函数:unescape, decodeURI, decodeURIComponent
    最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8 支持(form中的编码方式和当前页面编码方式相同)

    1.2 调用方式

    escape(url) , encodeURI(url) , encodeURIComponent(url)

    1.3 不编码字符

    • escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
    • encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
    • encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

    2. 后台 client

    2.1 encode() 与 decode()

    方法在编写 client 端时,同样需要对 中文、空格等特殊字符进行编码,确保传输过程中信息正确。
    使用方法 URLEncoder.encode()与 URLDecoder.decode()

    2.2 使用方式

      // 对URL进行编码
    // 这里需要进行说明的点:在进行转义(编码)时,空格字符 " " 会转换为一个加号 “+”。在进行 解码时 ”+“ 不作处理。

    // 故需要 replaceAll() 方法,将 ”+“ 改为 空格的 ASCII码 %20。 String encodeData = "https://www.ceshi.com?cusname=" + URLEncoder.encode("张 三", "UTF-8").replaceAll("\+", "%20"); // 结果为:https://www.ceshi.com?cusname=%E5%BC%A0%20%E4%B8%89 System.out.println(encodeData); // 对URL进行解码 String decodeData = URLDecoder.decode(encodeData, "UTF-8"); // 结果为:https://www.ceshi.com?cusname=张 三 System.out.println(decodeData);

    2.3 不编码字符

    字母数字字符 “a” 到 “z”、“A” 到 “Z” 和 “0” 到 “9” 保持不变。
    特殊字符 “.”、"-"、"*" 和 “_” 保持不变。
    注:

    • 所有其他字符都是不安全的,因此首先使用一些编码机制将它们转换为一个或多个字节。然后每个字节用一个包含 3 个字符的字符串 “%xy” 表示,其中 xy 为该字节的两位十六进制表示形式。
    • 推荐的编码机制是 UTF-8。但是,出于兼容性考虑,如果未指定一种编码,则使用相应平台的默认编码。
  • 相关阅读:
    Hyperledger Fabric:最简单的方式测试你的链码
    ETCD:客户端v3
    ETCD:gRPC命名与发现
    ETCD:HTTP JSON API通过gRPC网关
    ETCD:TLS
    ETCD:基于角色的访问控制
    ETCD:多机上的集群
    ETCD:etcd网关
    ETCD:在容器中运行etcd集群
    ETCD:词汇表
  • 原文地址:https://www.cnblogs.com/zz-1q/p/10336329.html
Copyright © 2011-2022 走看看