1

由于某种原因,html 转义在我的 Rails 应用程序中不起作用。即使我写了类似的东西

<%=h '©äö' %> 

它不会将任何字符转换为 HTML 实体。

我不知道可能是什么。它一直很好,现在突然不行了。

有任何想法吗?

4

3 回答 3

8

ö并且ä是 HTML 中的有效字符。没有必要对它们进行转义,即使它们有 HTML 实体。这些实体是方便的,不是必需的——只要声明的编码(HTTP 标头)和实际的字符编码匹配,如果它们按字面意思出现就没有问题。

唯一必须始终转义的字符是<,和>,就像在 XML 中一样。&"

于 2009-09-26T17:33:27.100 回答
2

我会说 h 仅替换 HTML 特殊字符 <、>、& 和“。请查看位于 h 函数后面的Rails ERB::Util.html_escape的文档。

于 2009-09-26T17:34:20.593 回答
1

Google 站点地图需要完全转义的 URL,因此在这种情况下,您需要转义所有特殊字符和国际字符。

这个htmlentities为您完成了这项工作。

我什至写了一个小包装application_helper.rb

def html_entity_escape(s)
  require 'htmlentities'
  @html_coder ||= HTMLEntities.new
  @html_coder.encode(s)
end
于 2010-01-13T09:41:14.957 回答