【问题标题】:Reading HTML entities读取 HTML 实体
【发布时间】:2019-11-19 13:13:10
【问题描述】:

在 R 中使用 xml2 包将 HTML 实体转换为 Unicode 字符:

xml2::read_html("<html> This is a dash &#8211;  <html>")
# {xml_document}
# <html>
# [1] <body><p> This is a dash \u2013  </p></body>

我想保留 HTML 实体,因为如果我以后使用 pandoc 将 HTML 转换为 LaTeX,\u2013 将被删除,而 &amp;#8211; 会正确转换为 --

我怎样才能做到这一点?

编辑

我在 Linux R 3.6.1 - 包 xml2 1.2.0

【问题讨论】:

  • 这不会发生在我的工作机器上(Windows 10、R 3.6.1、xml2 1.2.0)。我得到[1] &lt;body&gt;&lt;p&gt; This is a dash – &lt;/p&gt;&lt;/body&gt;

标签: r unicode utf-8 html-entities xml2


【解决方案1】:

不是实际的解决方案,而是一种解决方法:

Sys.setenv(LANG="en_US.UTF-8")
xml2::read_html("<html> This is a dash &#8211;  <html>")  
# {xml_document}
# <html>
# [1] <body><p> This is a dash –  </p></body>

注意,我仍然丢失了 HTML 实体,但输出是正确的并且与 Windows 输出一致(基于发布的 cmets)。

仅当我在终端模拟器中运行 R 时,该修复程序才有效。如果我在 Emacs 中运行 R,我会不断收到 \u2013

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 2017-09-17
    • 1970-01-01
    • 2018-03-30
    • 2019-06-17
    • 2021-10-10
    相关资源
    最近更新 更多