我尝试编织一个包含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.