【发布时间】:2023-03-22 16:58:01
【问题描述】:
我希望 Nokogiri 保持 HTML 实体不变,但它似乎将实体转换为实际符号。例如:
Nokogiri::HTML.fragment('<p>®</p>').to_s
结果:"<p>®</p>"
似乎没有任何东西可以将原始 HTML 返回给我。
.inner_html、.text、.content 方法都返回 '®' 而不是 '&reg;'
Nokogiri 有没有办法让这些 HTML 实体保持不变?
我已经搜索了 stackoverflow 并找到了类似的问题,但没有一个与这个完全一样。
【问题讨论】:
-
你见过this question吗?
-
这个问题只涉及保持 UTF-8 不变,而不是避免实体的解码。
-
rdvdijk - 是的,我已经看到了这个问题,但这不是我要问的。作者在他的第一行代码中得到了正确的输出,但我没有。
-
我会投票关闭这个作为 stackoverflow.com/questions/4476047/… 的副本,除了这个问题的公认答案是相当多的黑客而不是干净的“不要转换”。跨度>
-
使用
to_html :encoding => 'US-ASCII'而不是to_s输出<p>&#174;</p>,如果您的问题是试图避免编码问题,这可能很有用。据我所知,似乎没有办法让 Nokogiri 输出命名字符实体。