html.EscapeString()和template.HTMLEscapeString()有什么区别?

时间:2016-09-03 18:45:28

标签: html go escaping

我需要逃避一些HTML并希望确保我没有遗漏任何东西。

“html”包有:

[html.EscapeString(s string) string][1]
which will escape `'"&<>`

“text / template”包有:

[template.HTMLEscapeString(s string) string][2]
which also escapes `'"&<>`

他们似乎做了同样的事情,但方法略有不同。我有什么不同之处吗?如果没有,为什么有两个不同的内置函数?

1 个答案:

答案 0 :(得分:2)

没有区别。在内部,它们的实现方式不同([1] [2]),但结果是100%相等。

我非常确定HTMLEscapeString是为内部text/template包使用而创建的,因此如果您需要在应用中转义HTML,请使用html.EscapeString