带有 R Markdown、knitr 和 Windows 的 UTF-8

UTF-8 with R Markdown, knitr and Windows

提问人:Nikos Alexandris 提问时间:8/19/2016 最后编辑:CommunityNikos Alexandris 更新时间:8/19/2016 访问量:5027

问:

什么?

文件通过 Linux 中的(或 )无错误呈现。相关材料(即子 R 脚本和 CSV 输入数据)均以 UTF-8 格式设置。.Rmdknitrrmarkdown

从 Windows 中执行相同的脚本(实际上该脚本位于克隆的 git 存储库中)不会干净地呈现所有字符,因为它设置为 Windows-1252

例子

例如,从 CSV 源到某些 data.frame 的列内容中的字符串排版为 。要正确阅读这个,在读入数据时添加 就足够了。"sans réserves""sans réserves"encoding='UTF-8'read.csv

另一个涉及其他代码行中的条目的示例是字符串 。排版为 。幸运的是,以下建议R"Trésorier Général""Trésorier Général"

read_chunk(lines = readLines("TestSpanishText.R", encoding = "UTF-8"))

取自 https://stackoverflow.com/a/15714617/1172302,工作正常,字符串按预期呈现。

相关

[更新]有一些相关的问答,但它们已经有 2-3 年的历史了。同样,此页面 https://support.rstudio.com/hc/en-us/articles/200532197-Character-Encoding 指出了这个问题。

问题

有没有另一种更简单的方法来克服这个问题,以及内部的Windows?关于如何处理此类问题的建议?我试图遵循一个单一来源的所有原则。UTF-8R

ps- 一个有趣的阅读:https://superuser.com/a/221602/128768

R Windows UTF-8 针织 R-Markdown

评论

0赞 IInspectable 8/19/2016
有没有另一种更简单的方法来克服这个问题”——什么是“这个问题”?您似乎已经发现,要使文本正确呈现,渲染器需要了解其字符编码。说实话,没有纯文本这样的东西
0赞 Nikos Alexandris 8/19/2016
@IInspectable 是的,渲染器需要知道。问题在于,为什么要为读取文件和编写脚本设置任何内容?为什么不说,在一个地方,所有这些都是 UTF-8,请正确呈现。read_chunk
0赞 IInspectable 8/19/2016
我不知道,R 是否可以做到这一点,但您可以尝试在 Windows 上将代码页设置为 65001,以指示 UTF-8。
0赞 Nikos Alexandris 8/19/2016
@IInspectable 谢谢。问题来了:support.rstudio.com/hc/en-us/articles/......
0赞 IInspectable 8/19/2016
如果我理解,您可以在 IDE 中设置默认编码。我是否遗漏了什么,或者您是否正在寻找一种不需要用户更改其环境的解决方案?

答: 暂无答案