Есть ли опция knitr для принудительного кодирования UTF-8 во включенных R-файлах?

Я использую Windows 7, R2.15.3 и RStudio 0.97.320 с knitr knitr_1.1.6 (загружен после того, как Yihui исправил проблему «Кодировка: knitr и дочерние файлы» 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 

У меня есть R-код в таком файле:

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

# Workaround
my.text <- 'á é í ó ú ñ'
Encoding(my.text) <- "UTF-8"
print(my.text)

Я вызываю его из файла Rmd, такого как этот:

Title
========================================================
Spanish text: á é í ó ú ñ

Use it from .Rmd code: it comes out right...
```{r}
print('á é í ó ú ñ')
```

```{r ReadFunctions, cache=FALSE, echo=TRUE, eval=TRUE}
read_chunk('TestSpanishText.R')
```

Spanish text comes out garbled here:
```{r RunMyCode, echo=TRUE, eval=TRUE, cache=TRUE, dependson=c('ReadFunctions')}
``` 

Моя проблема с испанскими символами, напечатанными в файле .R (который является UTF-8, закодированным в RStudio). Эти символы в порядке, если они напечатаны в файлах Rmd (как родительские, так и дочерние файлы работают хорошо), но не в файлах R. Как вы можете видеть ниже, Encoding() предоставляет обходной путь, но мне интересно, есть ли другой способ, такой как глобальный параметр? Если я использую Encoding (), я получаю обратную проблему в консоли RStudio ...

Title

Spanish text: á é í ó ú ñ

Use it from .Rmd code: it comes out right...

print("á é í ó ú ñ")
## [1] "á é í ó ú ñ"
read_chunk("TestSpanishText.R")

Spanish text comes out garbled here:    
print("Called from .R file: á é í ó ú ñ")
## [1] "Called from .R file: á é í ó ú ñ"

# Workaround
my.text <- "á é í ó ú ñ"
Encoding(my.text) <- "UTF-8"
print(my.text)
## [1] "á é í ó ú ñ"

Спасибо!

7 голосов | спросил ap53 29 MarpmFri, 29 Mar 2013 16:56:51 +04002013-03-29T16:56:51+04:0004 2013, 16:56:51

0 ответов


Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132