zoukankan      html  css  js  c++  java
  • 【转】javascript和html中unicode编码和字符转义的详解

    不是十分理解unicode和html转义的情况下,可能会误用,所以下面会对它们再做比较容易理解的解释:

    1.html中的转义:在html中如果遇到转义字符(如“ ”),不管你的页面字符编码是utf-8亦或者是GB2312,都会直接打印成相应的字符;而当遇到(如:“u8981”【此处的8981是16进制值】)时,则不会打印成相应字符。

    /*
     *html标记的转义
     *@example
     *<p>Hello World!</p>
     *       ||等价于
     *<p>Hello&nbsp;World!</p>
     *       ||等价于
     *<p>Hello&#160;World!</p>*/
    "&nbsp;" == "&#160;"; //false
    "&nbsp;".length == 6; //true

    2.html中的unicode编码:(如:”&#160;”,【此处的160是10进制值】)

    3.javascript内的unicode编码:当遇到unicode编码时(如:“u8981”),则会打印成相应的字符;而在javasript标签中,不会对转义字符进行转义(如“&nbsp;&#160;”)

    /*
     *javascript中unicode编码
     *@example
     *"u8981" == "要"; //true
     */
    "u8981".length == 1; //true

    4.javascript中的转义:(如:” ”会转义成换行符)

    5.javascript中unicode编码和字符的相互转化

    /*
     *unicode编码和字符相互转化
     */
    "要".charCodeAt() == 35201; //true,35201为10进制值
    String.fromCharCode(35201) == "要"; //true,35201为10进制值
    "u89" + "81" == "要"; //false,值为"u8981",是由于"u"会转义成"u"
    
    //从unicode编码到字符的方法
    eval("("u89" + "81")") == "要"; //true,8981为16进制值
  • 相关阅读:
    firewalld
    autossh反向隧道
    SSH端口转发
    yii2.0 控制器加载不同的user组件
    php笔记整理
    mysql绿色版安装问题解决(ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061))
    mysql笔记整理
    深入PHP EOF(heredoc)用法详解
    php中const与define的使用区别 详解
    phpstorm8 设置及license key
  • 原文地址:https://www.cnblogs.com/snowinmay/p/3224371.html
Copyright © 2011-2022 走看看