牛骨文教育服务平台(让学习变的简单)
博文笔记

html js php 转义字符详解

创建时间:2015-11-24 投稿人: 浏览次数:1480

  HTML中<,>,&等有特殊含义(<,>,用于链接签,&用于转义),不能直接使用。这些符号是不显示在我们最终看到的网页里的,那如果我们希望在网页中显示这些符号,该怎么办呢?
  那就需要将这些符号进行转义,让浏览器不去按照它原来的意义去解释它。

转义字符串的组成
  转义字符串(Escape Sequence),即字符实体(Character Entity)分成三部分:第一部分是一个&符号,英文叫ampersand;第二部分是实体(Entity)名字或者是#加上实体(Entity)编号;第三部分是一个分号。

  比如,要显示小于号(<),就可以写 &lt; 或者 &#60; 。

  用实体(Entity)名字的好处是比较好理解,一看lt,大概就猜出是less than的意思,但是其劣势在于并不是所有的浏览器都支持最新的Entity名字。而实体(Entity)编号,各种浏览器都能处理。

  提示:实体名称(Entity)是区分大小写的。

  备注:同一个符号,可以用“实体名称”和“实体编号”两种方式引用,“实体名称”的优势在于便于记忆,但不能保证所有的浏览器都能顺利识别它,而“实体编号”则没有这种担忧,但它实在不方便记忆。

HTML特殊转义字符列表(只列出最常用的)

显示 说明 实体名称 实体编号
半方大的空格 &ensp; &#8194
全方大的空格 &emsp; &#8195;
  不断行的空白格 &nbsp; &#160;
< 小于号 &lt; &#60;
> 大于号 &gt; &#62;
& &符号 &amp; &#38;
" 双引号 &quot; &#34;
© 版权 &copy; &#169;
® 已注册商标 &reg; &#174;



更详细的HTML转义字符点这里

JS转义符
  JS转义符由’ ‘开始
  比如要在字符串里面有’,可表示为’

JS字符串编码中换行问题
  解释一下,我的意思是我需要字符串在存储的时候是连续的,而在编辑器里面显示的时候有换行,这样做的目的是代码结构清晰,这个时候的处理方法是:在字符串每行最后一个字符后面加上’ ‘,意思是将编辑器里面的换行符给转义掉,表示当前行和下一行是连续的。注意第二行前面如果有空格或tab缩进,也是在字符串里面的。

情况一:如果在JS字符串里面编辑器换行,将导致JS错误。
情况二:在JS字符串里面包含 ,将这个字符串prepend到一个标签里面,这个 将解释为空格。
情况三:在JS字符串里面包含 ,将这个字符串放在textarea标签的val里面,将解释为换行。

PHP转义符
  PHP转义符也是由’ ‘开始
  比如要在字符串里面有“,可表示为”
  比如要在字符串里面有 ,可表示为 \

PHP字符串换行问题
  PHP字符串里面换行不能使用 进行转义。
  但编辑器回车换行,不会报错

另外php字符串变量可以使用定界符表示,用起来更方便

$str = <<<EOP
    row1ContentContent
    row2ContentContent
EOP;
/*
这个字符串在存储时,是从第二行开始,包括第二行开始的tab缩进,以及第二行结束的换行符。
*/
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。