R не в состоянии правильно кодировать символы romainan с UTF-8 - PullRequest
0 голосов
/ 03 апреля 2019

Я работаю над набором данных о местах, где в некоторых названиях мест используются локальные символы. Большинство символов отображаются правильно, но у меня проблемы с некоторыми румынскими символами, например, "ș".

Я пытался изменить 64-битную системную локаль Windows 10 для использования кодировки UTF-8, но это не решило проблему.

Пример файла можно найти здесь для тестирования: https://drive.google.com/file/d/1T7QQQ7G_dA_rXD9Ewf51uuQ6CUkscjP_/view?usp=sharing

Эта строка импортирует данные:

df <- read.delim("R_Encode_Issue.csv", header=TRUE, sep=",", encoding = "UTF-8", colClasses=c("character","character","character"))

> df
  region country         chapter
1 Europe Moldova Chi<U+0219>inau

Это отображает главу местоположения как "Chiinau" (Stackoverflow не может отобразить это даже: D) как в консоли, так и в средстве просмотра.

Если я преобразую таблицу данных в таблицу:

df2 <- as_tibble(df)

> df2
# A tibble: 1 x 3
  region country chapter 
  <chr>  <chr>   <chr>   
1 Europe Moldova Chișinău

Консоль отображает главу местоположения как «Кишинёв», а зритель - как «Кишинёв».

Я записываю данные в файл .csv:

write.csv(df2, file = "R_Encode_Out.csv",row.names=FALSE, na="", fileEncoding = "UTF-8") 

И глава о местонахождении написана как "Chiinau" в письменном файле.

R версия:

platform       x86_64-w64-mingw32          
arch           x86_64                      
os             mingw32                     
system         x86_64, mingw32             
status                                     
major          3                           
minor          5.3                         
year           2019                        
month          03                          
day            11                          
svn rev        76217                       
language       R                           
version.string R version 3.5.3 (2019-03-11)
nickname       Great Truth     

Версия RStudio:

$mode
[1] "desktop"

$version
[1] ‘1.1.463’

Я ожидал, что средство просмотра или, по крайней мере, записанный файл будут правильно отображать символы, когда я использую UTF-8 в качестве кодировки при импорте и экспорте. Но дело в том, что символы экспортируются неправильно.

Любое понимание того, что я могу сделать, чтобы исправить это?

1 Ответ

2 голосов
/ 03 апреля 2019

Попробуйте использовать функции импорта и экспорта, отличные от базы R. Я получил это для работы, используя readr в экспортированном файле (кажется, что средство просмотра отображает его как Chi<U+0219>inau. Экспортированный файл открывается правильно в блокноте, и в Excel, если я укажу, что он имеет кодировку UTF-8.

library(readr)
df <- read_csv("C:/Users/Andrew/Downloads/R_Encode_Issue.csv", locale = locale(encoding = "UTF-8"))

df
# A tibble: 1 x 3
  region country chapter 
  <chr>  <chr>   <chr>   
1 Europe Moldova Chișinău

write_csv(df, "C:/Users/Andrew/Desktop/R_Encode_Issue.csv")
...