zoukankan      html  css  js  c++  java
  • Javascript解码编码常用函数

    js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent

    1、 传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。

    例如: 退出

    2、 进行url跳转时可以整体使用encodeURI

    例如:Location.href=encodeURI(”http://cang.baidu.com/do/s?word=百度&ct=21″);

    3、 js使用数据时可以使用escape[Huoho.Com编辑]

    例如:搜藏中history纪录。

    4、 escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。

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

    escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

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

    encodeURIComponent不编码字符有71个:!, ‘,(,),*,-,.,_,~,0-9,a-z,A-Z

    ========================================================

    unescape 方法

    从用 escape 方法编码的 String 对象中返回已解码的字符串。

    function unescape(charString : String) : String

    参数

    charString

    必选。要解码的 String 对象或文本。

    备注

    unescape 方法返回一个包含 charstring 内容的字符串值。所有以 %xx 十六进制形式编码的字符都用 ASCII 字符集当中等效的字符代替。以 %uxxxx 格式(Unicode 字符)编码的字符用十六进制编码 xxxx 的 Unicode 字符代替。注意 unescape 方法不应用于解码“统一资源标识符”(URI)。请改用 decodeURI 和 decodeURIComponent 方法。

    decodeURI 方法

    返回一个已编码的统一资源标识符 (URI) 的非编码形式。

    function decodeURI(URIstring : String) : String

    参数

    URIstring

    必选。表示编码 URI 的字符串。

    备注

    使用 decodeURI 方法代替已经过时的 unescape 方法。

    decodeURI 方法返回一个字符串值。

    如果 URIString 无效,将发生 URIError。

    decodeURIComponent 方法

    返回统一资源标识符 (URI) 的一个已编码组件的非编码形式。

    function decodeURIComponent(encodedURIString : String) : String

    必选的 encodedURIString 参数是一个表示已编码的 URI 组件的值。

    备注

    URIComponent 是一个完整的 URI 的一部分

    ====================================
    因此,对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用escape。如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者 encodeURIComponent。

    这样就构成了统一的编码格式下面举简单的个例子:
    在服务器端:
    String encode=java.net.URLEncoder.encode(”大家好”,”utf-8″);
    //encode=(”%E5%A4%A7%E5%AE%B6%E5%A5%BD”
    String decode=java.net.URLDecoder.decode(”%E5%A4%A7%E5%AE%B6%E5%A5%BD”,”utf-8″);

    客户端解码Javascript:
    decodeURIComponent(xmlHttp.responseText);
    客户端传送时编码:
    encodeURIComponent(”大家好”)

    encodeURI(”大家好”)
    这样就可以解决中文乱码编码问题了。

  • 相关阅读:
    odoo字段
    页签中加按钮 odoo里面
    页签类型按钮上面记录条数获得
    sql语句 这里是取一串数据中的 头 中 尾 几个数据
    python 字典,元组,对象,数组取值方法
    action类型的按钮和object按钮的用法
    数据结构与算法 基于c语言篇
    odoo开发历史订单需求整体思路
    spring框架的ioc和aop
    java注解和反射学习
  • 原文地址:https://www.cnblogs.com/beceo/p/2419757.html
Copyright © 2011-2022 走看看