Не реальное решение, но обходной путь:
Sys.setenv(LANG="en_US.UTF-8")
xml2::read_html("<html> This is a dash – <html>")
# {xml_document}
# <html>
# [1] <body><p> This is a dash – </p></body>
Обратите внимание, я все еще теряю сущность HTML, но вывод правильный и соответствует выводу Windows (на основе опубликованных комментариев).
Исправление работает, только если я запускаю R в моем эмуляторе терминала.Если я запускаю R в Emacs, я получаю \u2013
.