相关疑难解决方法(0)

是否有knitr选项强制包含R文件中的UTF-8编码?

我正在使用Windows 7,R2.15.3和RStudio 0.97.320与knitr knitr_1.1.6(在Yihui于3月12日修复'编码:编织和子文件'问题后下载)

> sessionInfo()
R version 2.15.3 (2013-03-01)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=Spanish_Argentina.1252  LC_CTYPE=Spanish_Argentina.1252    LC_MONETARY=Spanish_Argentina.1252
[4] LC_NUMERIC=C                       LC_TIME=Spanish_Argentina.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] lattice_0.20-13    pixmap_0.4-11      RColorBrewer_1.0-5 ade4_1.5-1         pander_0.3.1      
[6] xtable_1.7-1      

loaded via a namespace (and not attached):
[1] digest_0.6.3   evaluate_0.4.3 formatR_0.7    grid_2.15.3    knitr_1.1.6    stringr_0.6.2  tools_2.15.3 
Run Code Online (Sandbox Code Playgroud)

我把R代码放在像这样的文件中:

## @knitr RunMyCode 
print('Called from .R file: á é í ó ú ñ')  

# Workaround
my.text <- 'á é í ó …
Run Code Online (Sandbox Code Playgroud)

r utf-8 character-encoding knitr

7
推荐指数
1
解决办法
3286
查看次数

多个操作系统上的RMarkdown utf-8错误

我们在多个操作系统上使用RMarkdown时遇到问题.

最初,在Linux系统(Ubuntu 12.04 LTS)上创建.Rmd文件,然后将其推送到GitHub存储库.

它可以在这个系统上编译("编织")而没有问题.

然后在安装了RStudio的Windows 7机器上拉出它.

在那里,当尝试编译时,出现以下错误:

Error in yaml::yaml.load(front_matter) : 
  Reader error: invalid leading UTF-8 octet: #FC at 66
Calls: <Anonymous> -> parse_yaml_front_matter -> <Anonymous> -> .Call
Execution halted
Run Code Online (Sandbox Code Playgroud)
  1. 在Windows系统上创建另一个.Rmd文件时,它可以完美运行.
  2. 在Windows系统上创建另一个.Rmd文件,并将除"有问题"文件的前几行之外的所有文件复制到另一个.Rmd文件,并编译此文件时,它可以完美地工作.

我在两个操作系统上比较了HEX(Sublime)中的两个文件:它们完全相同.

之前有人见过那个错误吗?

更新:似乎德国变形金刚("ü")引起了这个问题,因为它的UTF-8"Escaped Unicode"是\ uFC,根据http://www.endmemo.com/unicode/unicodeconverter.php

通常,似乎Windows上的R,RStudio或knitr无法正确识别Unicode.当我在一个新的.Rmd文件中键入一些变形金刚并编织它时,我得到诸如"Ãää"的输出.在RStudio>工具>全局选项中,我将默认文本编码设置为"UTF-8".我还在RProfile.site文件(options(encoding="UTF-8"))中为R做了这个.

更新2: library(rmarkdown); sessionInfo()给出

R version 3.1.2 (2014-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=German_Switzerland.1252  LC_CTYPE=German_Switzerland.1252    LC_MONETARY=German_Switzerland.1252
[4] LC_NUMERIC=C                        LC_TIME=German_Switzerland.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] rmarkdown_0.4.2

loaded via …
Run Code Online (Sandbox Code Playgroud)

encoding r rstudio knitr r-markdown

6
推荐指数
1
解决办法
1712
查看次数

标签 统计

knitr ×2

r ×2

character-encoding ×1

encoding ×1

r-markdown ×1

rstudio ×1

utf-8 ×1