【问题标题】:unable to read csv file saved with encoding "UTF-8-SIG"无法读取以编码“UTF-8-SIG”保存的 csv 文件
【发布时间】:2019-10-17 21:06:57
【问题描述】:

我获得了使用 Scrapy 抓取的数据,该数据保存为编码为 utf-8-sig 的 csv 文件。数据有很多不同的特殊字符:韩文、俄文、中文、西班牙文、...、星号(★)、这个????、这个????...

所以 Scrapy 可以保存,我可以在 Notepad++ 或 CSVFileView 等应用程序上查看这些内容。但是当我使用mydata <- read.csv(<path_to_file>, fileEncoding="UTF-8-SIG", header=FALSE) 在 R 中加载时,我得到了这个错误:

Error in file(file, "rt", encoding = fileEncoding) : 
  unsupported conversion from 'UTF-8-SIG' to ''

如果我不指定编码,我可以加载,但符号会变成â˜之类的字符,并且第一列标题将附加ï..

我应该选择哪种编码来包含所有字符?

【问题讨论】:

  • @H1 是的,遇到这种特殊字符时会停止加载
  • 也许可以试试read.csv(<path_to_file>, encoding="UTF-8", header=FALSE) - 请注意,这是使用encoding 参数而不是fileEncoding 参数。
  • @H1 是的,行得通!但后来我的第一个专栏标题附加了X.U.FEFF.

标签: r utf-8 character-encoding


【解决方案1】:

由于输入已经编码为UTF-8,您应该使用encoding 参数按原样读取文件。使用fileEncoding 将尝试重新编码文件。

mydata <- read.csv(<path_to_file>, encoding="UTF-8", header=FALSE)

【讨论】:

  • 谢谢。但是如何防止X.U.FEFF. 被附加到我的第一列标题?
  • 这是由字节顺序标记 (BOM) 引起的,因此使用 fileEncoding 选项 UTF-8-BOM 应该可以解决此问题,但是正如您所说,这不起作用,也许您可​​以尝试 @987654328 @ 反而。或者,作为最后的手段,您可以重命名第一列。
猜你喜欢
  • 1970-01-01
  • 2013-07-04
  • 1970-01-01
  • 1970-01-01
  • 2020-06-26
  • 2018-01-16
  • 1970-01-01
  • 2018-06-13
  • 1970-01-01
相关资源
最近更新 更多