为什么需要对 html 进行转义?
在 html 中,有一些符号<>等等都是有特定含义的,比如<>是一个标签的开始和结束。如果在一个.html文件写<>,会被解析为标签。那么如果想在页面显示这些特定字符呢?那么就需要对这些字符进行转义,然后写到 html 中,就不会被浏览器认为是 html 中的特殊字符。
go 中的方法
在 go 中,可以使用官方 html 包的 EscapeString 方法,将一个字符串中的在 html 中有特定含义的字符转义,官方对于这个方法的注释如下:
EscapeString escapes special characters like “<” to become “<”. It escapes only five such characters: <, >, &, ‘ and “. UnescapeString(EscapeString(s)) == s always holds, but the converse isn’t always true.
官方示例:
Code:play
1 |
|
Output:
1 |
|
与 EscapeString 对应的方法叫 UnescapeString,官方注释如下:
UnescapeString unescapes entities like “<” to become “<”. It unescapes a larger range of entities than EscapeString escapes. For example, “á” unescapes to “á”, as does “á” and “á”. UnescapeString(EscapeString(s)) == s always holds, but the converse isn’t always true.
官方示例:
Code:play
1 |
|
Output:
1 |
|
我的测试
如果一个文件 data.html 中的内容如下:
1 |
|
那么用chrome打开这个文件显示结果为:
如果想在浏览器显示< 呢?
用 go 的EscapeString方法或者在线html转义工具对<进行转义,得到<
,将<
加到段落最后,就不会被认为是一个标签的开始了。data.html 改成这样:
1 |
|
chrome 的显示效果为: