如何确保人们在Excel中导入正确的编码方式?
不要转换为iso-8859-1,而是使用readr::write_excel_csv2()
进行导出。它会将文件写成UTF-8格式,并带有字节顺序标记(BOM),这样Excel就能理解了。
library(readr)
test <- c("Argentinië", "België", "Haïti")
test
转换为UTF-8,因为我使用的是Windows系统。test <- enc2utf8(test)
test
应该已经使用 UTF-8 编码,因为这是本地编码。Encoding(test)
#> [1] "UTF-8" "UTF-8" "UTF-8"
使用readr::write_excel_csv2()
将文件保存为Excel csv格式
write_excel_csv2(data.frame(x = test), "test.csv")
或者使用 writexl::write_xlsx()
将文件保存为 xlsx
writexl::write_xlsx(data.frame(x = test), "test.xlsx")
test <- c("Argentinië", "België", "Haïti")
con <- file('~/test.csv', encoding = "ISO-8859-1")
write.csv(x = test, file = con)
在我的bash中调用csvlook test.csv -e "ISO-8859-1"
返回以下结果:
| a | x |
| - | ---------- |
| 1 | Argentinië |
| 2 | België |
| 3 | Haïti |
R
中没有什么可以解决这个问题的吗? - Tdebeus做简单的事情
只需在记事本中打开文件并另存为UTF-8格式,然后在Excel中打开保存的记事本文件,它会要求您进行导入操作,根据您的报告进行分隔符,并使用逗号作为列分隔符完成导入。您将获得干净的文件。