使用R语言fwrite导出CSV时如何去除£前的Â字符
解决CSV导出时英镑符号乱码问题
这个问题是编码不匹配导致的:英镑符号£属于UTF-8编码字符,若导出时未明确指定编码,系统默认编码会将其解析为乱码£。
修复方法
在fwrite()函数中明确指定UTF-8编码,同时可根据需求添加BOM(方便Excel等软件正确识别):
# 设置工作目录 setwd(dirname(rstudioapi::getSourceEditorContext()$path)) dt = data.table( Product = c("a","b", "c", "d", "e") , `Price in £` = c(1,2,3,4,5) ) # 指定UTF-8编码并添加BOM(适配Windows下Excel打开场景) fwrite(dt, "DTTest.csv", encoding = "UTF-8", bom = TRUE)
关键参数说明
encoding = "UTF-8":强制以UTF-8编码写入文件,确保特殊字符(如£)被正确保存。bom = TRUE:添加UTF-8 BOM头,解决Windows系统中Excel默认不识别纯UTF-8文件的问题,彻底避免乱码。
若无需兼容旧版Excel,仅指定encoding = "UTF-8"即可解决问题。
内容的提问来源于stack exchange,提问作者Oliver Humphreys
相关产品推荐
相关产品推荐

