使用 UTF-8 编码的 read.csv() [重复]

Posted

技术标签:

【中文标题】使用 UTF-8 编码的 read.csv() [重复]【英文标题】:read.csv() with UTF-8 encoding [duplicate] 【发布时间】:2016-12-23 12:54:04 【问题描述】:

我正在尝试从 csv 文件中读取数据并将字符的编码指定为 UTF-8。通过阅读 ?read.csv() 指令,似乎设置为 UTF-8 的 fileEncoding 应该可以完成此操作,但是,我在检查时没有看到。导入数据时是否有更好的方法将字符串的编码指定为 UTF-8?

样本数据:

Download Sample Data here

fruit<- read.csv("fruit.csv", header = TRUE, fileEncoding = "UTF-8")
fruit[] <- lapply(fruit, as.character)
Encoding(fruit$Fruit)

输出是“uknown”,但我希望这是“UTF-8”。确保所有导入字符都是 UTF-8 的最佳方法是什么?谢谢你。

【问题讨论】:

尝试改用encoding 参数? 强制转换为as.character 之前的课程是什么?也许将stringsAsFactors=FALSE 添加到read.csv。此外,如果您的字符均不在 ASCII 范围之外,则不会影响编码:x&lt;-"Hello"; Encoding(x)&lt;-"UTF-8"; Encoding(x) vs x&lt;-"Həllö"; Encoding(x) 【参考方案1】:
fruit       <- read.csv("fruit.csv", header = TRUE)
fruit[]     <- lapply(fruit, as.character)
fruit$Fruit <- paste0(fruit$Fruit, "\xfcmlaut") # Get non-ASCII char and jam it in!
Encoding(fruit$Fruit)

[1] "latin1" "latin1" "latin1"

fruit$Fruit <- enc2utf8(fruit$Fruit)
Encoding(fruit$Fruit)

[1]“UTF-8”“UTF-8”“UTF-8”

【讨论】:

以上是关于使用 UTF-8 编码的 read.csv() [重复]的主要内容,如果未能解决你的问题,请参考以下文章

UiPath Read CSV 中文乱码

R语言读写中文编码方式

中文乱码解决方案

为啥 R 将 UTF-8 标头作为文本读取?

R语言中的中文乱码问题总结

无法将 unicode .csv 读入 R