r语言 - knitr 无法编织 UTF-8 字符:"These lines contain invalid UTF-8 characters"



我尝试编织一个包含UTF-8字符的RMD文件。

这个文件看起来和这个一样简单:

test with some characters: ü ö ä ß

编织命令看起来像这个

library(knitr)
options(encoding = "UTF-8")
knitr::knit2html("FILE_LOCATION/UTF file.Rmd",  output="Output_File.html")

然而,它失败了:该文件将文本编织为"用一些字符进行测试:"并且有一个警告:

文件/UTF文件。Rmd不是用UTF-8编码的。这些线条包含无效的UTF-8字符:1个

但是,文件UTF-8(从中执行命令和RMD文件(。我通过RStudio确保了这一点,除了编码之外,UTF-8(无论如何都是标准的(。有趣的是,如果我使用一个稍微不同的命令:

library(knitr)
options(encoding = "native.enc")       #  Only change in this line
knitr::knit2html("FILE_LOCATION/UTF file.Rmd",  output="Output_File.html")

我的两台电脑中有一台把文件编对了。另一个则在没有警告的情况下再次生成:"用一些字符进行测试:"。奇怪的是,这两台电脑都使用Windows 10,同样版本的R(R 3.5.3(、RStudio(1.1.463(和Knitter(两者都尝试过,结果相同:1.22和1.25(

感谢您的帮助。

编辑:添加xfun::session_info("knitr")的输出


> xfun::session_info("knitr")
R version 3.5.1 (2018-07-02)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
Locale:
LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252
LC_NUMERIC=C                           LC_TIME=English_United States.1252    
Package version:
evaluate_0.14   glue_1.3.0      graphics_3.5.1  grDevices_3.5.1 highr_0.8       knitr_1.25      magrittr_1.5   
markdown_1.1    methods_3.5.1   mime_0.7        stats_3.5.1     stringi_1.2.4   stringr_1.3.1   tools_3.5.1    
utils_3.5.1     xfun_0.10       yaml_2.2.0     

已解决

问题:在Windows 10、markdown版本=>1.0和R版本<3.6.0.

解决方案:更新R.

最新更新