Rstudio не будет писать внезапно кодировку UTF-8 с данными смайликов - PullRequest
0 голосов
/ 21 апреля 2020

Я работаю над проектом, использующим текстовые файлы с эмодзи, и у меня начались проблемы с записью блока данных смайликов в CSV-файл. Я работал с этими файлами в течение некоторого времени, и до сих пор я смог сохранить текстовые данные, используя write.csv (x, "filename"), и просмотреть их с помощью read.csv ("filename", encoding = "UTF). -8 ") без проблем. Вчера, совершенно неожиданно, это перестало работать. Все ранее сохраненные файлы по-прежнему будут отображать смайлики с использованием функции read.csv (), но я не могу писать и читать новые файлы. Например, если у меня есть:

x <- c("?","?","?")
View(x)
write.csv(x, "testemoji.csv")
x2 <- read.csv("testemoji.csv", encoding = "UTF-8")
View(x2)

x будет

viewed as this

, а x2 будет

viewed as this

Я использую R verion 3.6.3 и windows 10.

Что я пробовал до сих пор:

write.csv(x, "filename", fileEncoding = "UTF-8")

write.table(x, "filename", fileEncoding = "UTF-8")

write.csv2(x, "filename", fileEncoding = "UTF-8")
x2<- read.csv2("filename", encoding = "UTF-8")

Я испробовал все варианты "инструментов - глобальные параметры - кодирование - сохранение - кодировка текста по умолчанию "

Я также пытался связываться с языком локали на компьютере и параметром бета-UTF-8

при проверке кодировки с помощью Encoding(x$v1) возвращает «UTF-8», «UTF-8», «UTF-8», но когда я проверяю Encoding(x2$x), возвращается «неизвестно», «неизвестно», «неизвестно».

попытка изменить кодировку с помощью Encoding(x2$x)<- "UTF-8" не меняет результат.

Я работаю над этим проектом 3 месяца без проблем. Я не могу понять, почему это произошло так внезапно. Насколько я помню, я не изменил никаких настроек или настроек R, Rstudion или моего компьютера до того, как это произошло. Крайний срок для этого проекта приближается через неделю, и я отчаянно нуждаюсь в ответах. Если кто-то может помочь, я был бы очень признателен. Спасибо

1 Ответ

1 голос
/ 21 апреля 2020

Возможно, стоит переключиться на использование библиотеки readr для лучшей поддержки кодирования. Это сработало для меня

readr::write_csv(data.frame(x),'testemoji.csv')
x2<- readr::read_csv("testemoji.csv")
View(x2)
...