[英]Rails: html_escape isn't working
由于某些原因,html转义在我的Rails应用程序中不起作用。 即使我写类似
<%=h '©äö' %>
它没有将任何字符转换为HTML实体。
我不知道那可能是什么。 它总是工作正常,但现在突然不起作用了。
有任何想法吗?
ö
和ä
是HTML中的有效字符。 即使有HTML实体,也无需转义它们。 这些实体是方便的,而不是必需的-只要声明的编码(HTTP标头)和实际的字符编码匹配,则按字面意义出现就没有问题。
像XML中一样,始终必须转义的唯一字符是<
, >
, &
和"
。
我会说h只替换HTML特殊字符<,>和&和。。请查看h函数背后的Rails ERB :: Util.html_escape文档。
Google Sitemap 需要完全转义的URL ,因此在这种情况下,您需要转义所有特殊和国际字符。
这个htmlentities库可以为您完成此任务。
我什至在application_helper.rb
写了一个小包装:
def html_entity_escape(s)
require 'htmlentities'
@html_coder ||= HTMLEntities.new
@html_coder.encode(s)
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.