使用UTF-8编码的read.csv()
问题描述:
我试图从csv文件中读取数据并指定字符的编码为UTF-8。通过阅读read.csv()指令,似乎fileEncoding设置等于UTF-8应该完成这一点,但是,我没有看到,当检查。在导入数据时,是否有更好的方式将字符串的编码指定为UTF-8?使用UTF-8编码的read.csv()
样本数据:
fruit<- read.csv("fruit.csv", header = TRUE, fileEncoding = "UTF-8")
fruit[] <- lapply(fruit, as.character)
Encoding(fruit$Fruit)
输出为 “UKNOWN” 但我希望这是 “UTF-8”。确保所有导入字符都是UTF-8的最佳方法是什么?谢谢。
答
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”
尝试使用'encoding'参数代替吗? – Abdou
在强制转换为'as.character'之前,什么是类?也许把'stringsAsFactors = FALSE'添加到'read.csv'。另外,如果你的字符不在ASCII范围之外,它就不会为编码而烦恼:'x MrFlick