如何在R中使用write.table正确导出包含上下箭头符号的txt文件
问题原因
Windows系统默认区域编码多为GBK/CP936,和UTF-8不兼容。R的write.table在native编码非UTF-8的运行环境中,会自动将无法匹配native编码的Unicode字符(比如上下箭头)转义为<U+XXXX>格式,该转义行为优先级高于write.table的fileEncoding参数设置,因此直接指定fileEncoding无法解决问题。
解决方案
- 方案1:base R环境下,通过显式声明编码的文件连接写入
# 建立带UTF-8编码声明的文件连接,需适配Windows自带记事本可改为encoding = "UTF-8-BOM" con <- file("C:/Users/你的具体路径/导出结果.txt", encoding = "UTF-8") # 写入数据 write.table(f, con, sep = "\t", quote = F, row.names = F) # 关闭连接 close(con)
- 方案2:使用readr包导出,自动规避编码转义问题
# 未安装readr先执行:install.packages("readr") library(readr) # 需适配Windows自带记事本可添加参数 bom = TRUE write_delim(f, "C:/Users/你的具体路径/导出结果.txt", delim = "\t", quote = "none", escape = "none")
验证方法
导出后用Notepad++打开,查看右下角编码标识,若显示为UTF-8则箭头符号可正常展示;如果使用Windows自带记事本,建议导出时选择UTF-8-BOM编码,避免编辑器识别错误。
内容的提问来源于stack exchange,提问作者Alexander Ptak
相关产品推荐
相关产品推荐

