【问题标题】:R - Special characters reading with read_fwfR - 使用 read_fwf 读取特殊字符
【发布时间】:2019-02-27 16:55:38
【问题描述】:

我正在尝试使用 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 参数指定不同的编码方法(不是 UTF-8 或任何默认值)。我可以稍后在我的电脑前查看它。

标签: r encoding readr


【解决方案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   

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多