首页 > 解决方案 > 如何处理 knitr spin_child 中的编码

问题描述

按照https://yihui.name/en/2018/11/biggest-regret-knitr的建议,我开始使用 UTF-8 编码保存我的 .R 文件(使用 RStudios“使用编码保存”)。似乎工作得很好,直到使用 spin_child。

例如,在 Windows 下,我有一个带有以下代码 的文件mainfile.R :

print("Bär 1"); spin_child("subfile.R") 

subfile.R有这个代码:

print("Bär 2")

在 Windows 下的 RStudio 中,我运行

rmarkdown::render("mainfile.R", encoding = "UTF-8")

如果两个文件都以 UTF-8 编码保存,则 Bär 1 输出正常,但 Bär 2 输出为“Bär 2”(这对我来说似乎是一个编码问题)。有趣的是,如果我将 subfile.R 的编码更改为 ISO-8859-1(系统默认值),两个 Bär 都会正确显示。对我来说似乎很奇怪我应该对不同的文件使用不同的编码,所以我想知道如果 spin_child 的输入文件也是 UTF-8,我该怎么办?

标签: rknitrknitr-spin

解决方案


这是knitr中的一个错误,我刚刚在 Github 上修复了它。请尝试开发版本并继续使用 UTF-8:

remotes::install_github('yihui/knitr')

推荐阅读