R - Чтение специальных символов с помощью read_fwf

Я пытаюсь преобразовать большой список строк в фрейм данных с помощью функции read_fwf из пакета readr, и у меня возникают проблемы со специальными символами, такими как акценты. Может ли кто-нибудь помочь мне с этим, пожалуйста? Я не привык иметь дело с кодировками :(

library(readr)
fw <- fwf_widths(c(2,13,2), col_names = c('A','B','C'))
x <- read_fwf('00StackOvérflow00\n',
                      col_positions = fw)

Результат:

A     B                  C    
00    "StackOv\xe9rflow" 00  

Как видите, акцент исчез...

Спасибо!!

Ксеви


person Xevi    schedule 27.02.2019    source источник
comment
Я считаю, что вы можете указать другой метод кодирования (не UTF-8 или что-то другое по умолчанию), используя аргумент locale. Я могу проверить это позже, когда доберусь до своего компьютера.   -  person Andrew    schedule 27.02.2019


Ответы (1)


Вы можете исправить это, изменив кодировку через locale на LATIN1:

library(readr)
fw <- fwf_widths(c(2,13,2), col_names = c('A','B','C'))
x <- read_fwf('00StackOvérflow00\n',
                      col_positions = fw, locale = locale(encoding = 'LATIN1'))

Возвращение:

# A tibble: 1 x 3
  A     B             C    
  <chr> <chr>         <chr>
1 00    StackOvérflow 00   
person Mako212    schedule 27.02.2019