- 已编辑
wangbinzjcc 这应该是一个普遍存在的问题,为什么很少人提问呢?
“普遍”是相对的,要看你定义的总体是什么了。R 的核心开发者几乎都是英语母语,据我所知 Windows 的人可能只有一位。他们知道字符编码问题的痛苦,但一是他们自己很难遇到这种问题,二是他们也难以测试,三是 Windows 本身的废柴,直到几年前(两年?)才开始原生支持 UTF-8,所以这问题花了这么多年才在 R 4.2.0 中最终得以解决。
你这个办法倒也是个办法,但最终我还是建议一切文本文件使用 UTF-8 编码保存。另外你的代码可以稍微简化一下:
read.csv <- function(...) {
tryCatch(utils::read.csv(...), error = function(e) {
utils::read.csv(..., fileEncoding = "GB18030")
})
}
earclimateR 1)R4.2发布后声称彻底解决windows下的字体编码问题,支持原生UTF-8,问题是不再支持GBK了吗?
依旧支持。只要你读取文件时指定编码即可(如果用来读取的函数支持指定编码的话)。
earclimateR 有没有办法让RData文件以GBK的形式进行编译?
我估计没有,至少会很难,我建议你用 iconv(..., from = "GBK", to = "UTF-8")
将原来的字符串转成 UTF-8 编码。这应该是可以写几句代码批量完成的。