earclimateR 说明这个问题您也认为很普遍,有必要澄清吧
是的,对中日韩用户来说,极其普遍。我们都苦编码问题久矣(“久” == 十几年)。
earclimateR 上论坛时发现帐号密码都忘记了,新注册了个马甲,可见4.2后中文环境的使用,需要为国内用户讨论出一些策略建议
原来是老坛友了。密码忘了应该是可以通过邮箱找回的吧。如果邮箱也忘了,可以联系我们。是的,需要为国内用户提供策略。
earclimateR 我们使用的业务数据或外部数据一般不会是UTF-8的编码,您建议一切文本文件用UTF-8保存不太现实吧,可能更适合用指定GBK读取的方式
嗯,我不了解情况,有可能是站着说话不腰疼,不知道工作量有多大。如果数据都是 GBK 编码的文本文件,那么转码应该是可以批量搞定的:
gbk2utf8 = function(input, output) {
con = file(input, encoding = 'GBK')
txt = readLines(con)
writeLines(enc2utf8(txt), output, useBytes = TRUE)
}
也可以用命令行工具 iconv
。要不然就是不动数据,但在读数据的函数中加上编码参数,如 read.csv(..., fileEncoding = 'GBK')
。
earclimateR 二是怕来回转换后会不会产生一些转换失败的NA
如果从 GBK 转 UTF-8 产生 NA,那就说明原字符串不是 GBK 编码。这种情况下你可以加个判断并停止,仔细检查一下原字符串到底是怎么回事。
earclimateR 还是期待社区能出一些工具或策略,比如通过options(encoding=”GBK”)或某些基础包来支持GBK下的工作场景,让国内用户能够无感切换
我猜 options(encoding = 'GBK')
是可以的,但是这个选项设置最好不要全局设置,而是在读数据的时候临时设定一下,读完就恢复出厂设置,不然这个选项可能会带来很多意想不到的副作用。