英文版R处理中文显示为UFT-8原码及解决方案

在英文版R中,可能会将汉字显示为UFT-8原码。

测试环境:OS X 10.9,R 3.1.0

中文版的R存在大量翻译错误,故改为使用英文版。整体设置后,出现了以下问题:

1
2
3
a <- c("你")  
a  
 # [1] "\344\275\240"

后续对汉字的处理将无法进行。
有趣的是,从终端中直接使用R不存在这一问题,问题只存在于R控制台(即含Rstudio、ESS等需调用R控制台的IDE)。


解决方案:

1
2
3
4
Sys.setlocale(category = "LC_CTYPE", locate = "UTF-8")  
 # [1] "UTF-8"  
a  
 # [1] "你"

注意:在以下代码中,虽然可以解决中文显示问题,但会使R环境重新回到中文环境,这并非所期望的结果。

1
Sys.setlocale("LC_CTYPE", "zh_CN.UTF-8")

更新:

该方法对3.1.1已经失效,需改为

1
Sys.setlocale(category="LC_ALL",locale="en_US.UTF-8")