首页 > 解决方案 > 如何在 fwrite() 中为导出 csv 文件 R 指定编码?

问题描述

由于fwrite()无法应用编码参数,我怎样才能以最快的速度以特定编码导出 csv 文件fwrite()?(fwrite()是迄今为止我承认的最快的功能)

fwrite(DT,"DT.csv",encoding = "UTF-8")
Error in fwrite(DT, "DT.csv", encoding = "UTF-8") : 
  unused argument (encoding = "UTF-8")

标签: rfwrite

解决方案


您应该发布一个可重现的示例,但我想您可以通过确保DTR 中的数据采用 UTF-8 格式,然后将每列的编码设置为“未知”来做到这一点。然后,当您写出数据时,R 将假定数据以本机编码进行编码。

例如,

DF <- data.frame(text = "á", stringsAsFactors = FALSE)
DF$text <- enc2utf8(DF$text) # Only necessary if Encoding(DF$text) isn't "UTF-8"
Encoding(DF$text) <- "unknown"
data.table::fwrite(DF, "DF.csv", bom = TRUE)

如果 的列DF是因子,则需要先将它们转换为字符向量,然后才能使用。


推荐阅读