使用 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<-"Hello"; Encoding(x)<-"UTF-8"; Encoding(x)
vs x<-"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() [重复]的主要内容,如果未能解决你的问题,请参考以下文章