R - 用 read_fwf 读取的特殊字符

R - Special characters reading with read_fwf

我正在尝试使用 readr 包中的 read_fwf 函数将一大串字符串转换为数据帧,我在使用特殊字符(如重音符号)时遇到一些麻烦。有人可以帮我吗?我不习惯处理编码:(

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  

如您所见,口音消失了...

谢谢!!

谢维

您可以通过 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