使用UTF-8编码的read.csv()

问题描述:

我试图从csv文件中读取数据并指定字符的编码为UTF-8。通过阅读read.csv()指令,似乎fileEncoding设置等于UTF-8应该完成这一点,但是,我没有看到,当检查。在导入数据时,是否有更好的方式将字符串的编码指定为UTF-8?使用UTF-8编码的read.csv()

样本数据:

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的最佳方法是什么?谢谢。

+1

尝试使用'encoding'参数代替吗? – Abdou

+1

在强制转换为'as.character'之前,什么是类?也许把'stringsAsFactors = FALSE'添加到'read.csv'。另外,如果你的字符不在ASCII范围之外,它就不会为编码而烦恼:'x MrFlick

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”