首页 > 解决方案 > 读取 HTML 实体

问题描述

在 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将被删除,而&#8211;被正确转换为--.

我怎样才能做到这一点?

编辑

我在 Linux R 3.6.1 - 包 xml2 1.2.0

标签: runicodeutf-8html-entitiesxml2

解决方案


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

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 输出一致(基于发布的评论)。

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


推荐阅读