本文与 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)编号;第三部分是一个分号。
比如,要显示小于号(<),就可以写 < 或者 < 。
HTML特殊转义字符列表
显示 | 说明 | 实体名称 | 实体编号 |
半方大的空白 |   |   | |
全方大的空白 |   |   | |
不断行的空白格 | |   | |
< | 小于 | < | < |
> | 大于 | > | > |
& | &符号 | & | & |
" | 双引号 | " | " |
? | 版权 | © | © |
? | 已注册商标 | ® | ® |
? | 商标(美国) | ? | ™ |
× | 乘号 | × | × |
÷ | 除号 | ÷ | ÷ |
JavaScript转义符
转义序列 | 字符 |
---|---|
\b | 退格 |
\f | 走纸换页 |
\n | 换行 |
\r | 回车 |
\t | 横向跳格 (Ctrl-I) |
\‘ | 单引号 |
\" | 双引号 |
\\ | 反斜杠 |
参考资料