• R语言
  • [已解决]Rmarkdown中使用中文,跳出警告

ChristopherShen

试着重复了一下你的问题,rmarkdown里改用中文目录名和中文文件名之后果然不能用了。所以确保文件名里没有中文我觉得是更容易的解决方案。

这个错误跟你的很像吧:

> knitr::opts_chunk$set(echo = TRUE)
Warning message:
In dir.create(tempPath, recursive = TRUE) :
  cannot create dir 'C:\Users\TC\GIT\??', reason 'Invalid argument'

    tctcab 我平时的目录和文件名里面都有中文,基本功能都正常,导出成pdf也可以,就是每次执行命令都会条一个warning出来,有些烦人。

      11 天 后

      ChristopherShen 其实我估计这个问题真正要修复可能只需要十分钟,如果我的猜测没错的话,应该是缺少一个 Encoding(code) <- 'UTF-8'。类似的问题我以前修补过:https://github.com/rstudio/rstudio/pull/416/files 这个提示加上我上面的搜索提示,应该足够让一个普通 R 用户开始修复这个问题了。幸运的是这个问题不需要重新编译 RStudio,你可以在安装目录下找到那个 R 文件直接修改,改完了重启 RStudio 就可以测试了。

      我暂时只能帮到这里了。

        Cloud2016 三个文件(NotebookAlternateEngines.R、SessionRmdNotebook.R、SessionCodeTools.R),我逐一在本地搜索,第一个文件我没有,另外两个有;然后打开文件以后搜索“code”,在code之前或之后加上了Encoding(code) <- 'UTF-8',因为感觉不太放心,所以差不多真的是每个code附近都加了。现在测试以后果然正常了!!!?我怕对导出pdf有影响,所以又试了一次,导出也正常!?

        yihui 大神说得对啊,一定要造福后人!可惜我水平有限(GitHub账号都是刚刚才注册的?),幸好有Cloud2016 帮我翻译了一下大神的意思,要不然我还在乱试。

          Cloud2016 谢谢!提交补丁时注意能不动的就不要动,用最小的更改去修复问题即可,尽管别的地方的 strsplit() 可能也存在同样的问题,但如果它们不影响这个问题,就先不碰它们,因为你不知道碰了会不会引起别的问题。

            yihui 你是对的,确实可以不修改 SessionCodeTools.R 达到目的