html转义字符本文

本文与 tiankonguse 的博客里同步发表


今天遇到了 html 字符转义的问题,于是记录一下。


问题重现


在链接中,可以添加一个 title 字段,功能是对这个链接的描述。

但是,这个 title 里的字符有严格的限制,不能有引号,空格等字符,于是我就需要进行字符转义了。

这个 title 是在后台用 php 自动生成的,于是便需要使用 php 对字符串进行转义了。


解决方案


php 中有个字符串替换函数 str_replace 非常方便。

可以先看看我的字符转义的代码


$_title = str_replace( array("\""," ","<",">","&"), array("""," ","<",">","&"),$title);


这行代码进可以达到转义一些字符的目的。

第一个参数代表搜索的字符,第二个代表替换的字符,第三个是原串。


HTML 字符扩展知识


转义字符串(Escape Sequence)也称字符实体(Character Entity)。

在HTML中,定义转义字符串的原因有两个:第一个原因是像“<”和“>”这类符号已经用来表示HTML标签,因此就不能直接当作文本中的符号来使用。为了在HTML文档中使用这些符号,就需要定义它的转义字符串。当解释程序遇到这类字符串时就把它解释为真实的字符。在输入转义字符串时,要严格遵守字母大小写的规则。第二个原因是,有些字符在ASCII字符集中没有定义,因此需要使用转义字符串来表示。


转义字符串的组成


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

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


HTML特殊转义字符列表


显示 说明 实体名称 实体编号
  半方大的空白  &ensp;  &#8194;
  全方大的空白   &emsp; &#8195;
  不断行的空白格  &nbsp;  &#160;
小于  &lt;  &#60;
大于  &gt;  &#62;
&符号  &amp;  &#38;
双引号  &quot;  &#34;
版权 &copy; &#169;
?  已注册商标  &reg;  &#174;
?  商标(美国)  ? &#8482;
×  乘号  &times;  &#215;
÷  除号  &divide;  &#247;



JavaScript转义符

转义序列 字符
\b 退格
\f 走纸换页
\n 换行
\r 回车
\t 横向跳格 (Ctrl-I)
\‘ 单引号
\" 双引号
\\ 反斜杠


参考资料

http://114.xixik.com/character/

html转义字符本文

上一篇:Iptables-linux服务器做路由转发


下一篇:javascript日期的表达