写为 CSV 给出奇怪的字符

Write as CSV giving weird characters

我正在尝试将数据帧写入 csv,这成功了,但最终一些字段带有奇怪的字符,例如 4.5×10−7 在 csv 文件中给出 4.5×10â’7。在做了一些研究之后,我将 fileEncoding 用作 "Windows-1252",但这确实有帮助。这是一个可重现的代码

name <- c('John Doe','Peter Gynn','Jolie Hope')
valuename <- c("4.5×10−7", "0.0006", "0.345")
df <- data.frame(name,valuename)
write.csv(df, "/Desktop/test.csv", row.names=FALSE)

任何人都可以帮助我使用正确的编码或替代方法来处理该字段吗?

尝试强制使用 fileEncoding "UTF-8":

write.csv(df, "/Desktop/test.csv", row.names=FALSE, fileEncoding = 'UTF-8')

您的代码在我的 windows 7 中运行良好,但我在 ubuntu 16.04 中已经遇到类似问题。

使用 readr 包,您可以简单地使用:

readr::write_excel_csv(df, file)

根据文档,此函数“包括[s]一个 UTF-8 字节顺序标记,它向 Excel 指示 csv 是 UTF-8 编码的。”