读取HTML实体

时间:2019-07-09 23:43:58

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

在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

1 个答案:

答案 0 :(得分:0)

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

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