RStudio не может прочитать знак фунта стерлингов - PullRequest
0 голосов
/ 09 ноября 2018

После небольшого перерыва я обновил RStudio и все пакеты этим утром.

У меня есть небольшая функция, которую я использую для предварительной настройки валют

currency <- function(n, k=FALSE) {
n <- ifelse(!k, str_c("£", comma(round(n,0))), str_c("£", comma(round(n/1000,0)),"k"))
return(n)
}

Теперь не удается разобрать - проблема в знаке £.

Error in parse(text = lines, n = -1, srcfile = srcfile) : 

[path]/plot_helpers.R:72: 
25: unexpected INCOMPLETE_STRING
71: currency <- function(n, k=FALSE) {
72:   n <- ifelse(!k, str_c("
                        ^
In addition: Warning message:
In readLines(con, warn = FALSE, n = n, ok = ok, skipNul = skipNul) :
invalid input found on input connection '/home/richardc/ownCloud/prodr/R/plot_helpers.R'

Однако я могу запустить код в редакторе, и он отлично работает. Что вызывает сбой readLines таким образом?

1 Ответ

0 голосов
/ 07 февраля 2019

После некоторого бездействия сегодня я понимаю, что проблема в devtools. Напомним, вот тестовый проект testencr.prj:

library(stringr)
library(devtools)

main <- function(n) {
  n <- str_c("£", n)
  return(n)
}

Я могу нормально запускать код с консоли, но когда я использую devtools, для символа UTF-8 это barfs:

> devtools::load_all()
Loading testencr
Error in parse(text = lines, n = -1, srcfile = srcfile) : 
  /home/richardc/ownCloud/test/R/test_enc.R:6:14: unexpected INCOMPLETE_STRING
5: main <- function(n) {
6:   n <- str_c("
                ^
In addition: There were 27 warnings (use warnings() to see them)

Но когда я добавляю определенную кодировку в ОПИСАНИЕ

Encoding: UTF-8

Все нормально (несмотря на то, что по умолчанию в проекте UTF8)

Loading testencr
There were 36 warnings (use warnings() to see them)```


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...