首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在r控制台中显示和输入中文(和其他非ASCII)字符?

如何在r控制台中显示和输入中文(和其他非ASCII)字符?
EN

Stack Overflow用户
提问于 2014-06-29 14:23:09
回答 1查看 10.4K关注 0票数 11

我的系统: win7旗舰版64英文版+ r-3.1(64)。

这是我的sessionInfo。

代码语言:javascript
复制
> sessionInfo()
R version 3.1.0 (2014-04-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252     
LC_MONETARY=English_United States.1252 LC_NUMERIC=C      
LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

1.无法在r控制台中输入中文字符

当我在r控制台中输入一个汉字时,它变成了乱码。

2.无法在r控制台上显示汉字

当我在r控制台中读取数据时,中文字符变成乱码。

您可以下载数据,并使用

代码语言:javascript
复制
read.table("r1.csv",sep=",")

Download Data

如果您不知道如何从我的网站获取数据,请查看图表下载数据。

如何将我的电脑设置为在控制台中正确显示和输入中文字符?我已经更新了中文包,并启用了它,但问题仍然存在。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-02 09:42:23

它可能没有很好的文档,但您想要使用setlocale才能使用中文。该方法也适用于许多其他语言。解决方案并不明显,因为setlocale的官方文档并没有特别提到它是一种解决显示问题的方法。

代码语言:javascript
复制
> print('ÊÔÊÔ') #试试, meaning let's give it a shot in Chinese
[1] "ÊÔÊÔ" #won't show up correctly
> Sys.getlocale()
[1] "LC_COLLATE=English_United States.1252;LC_CTYPE=English_United States.1252;LC_MONETARY=English_United States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252"
> Sys.setlocale(category = "LC_ALL", locale = "chs") #cht for traditional Chinese, etc.
[1] "LC_COLLATE=Chinese_People's Republic of China.936;LC_CTYPE=Chinese_People's Republic of China.936;LC_MONETARY=Chinese_People's Republic of China.936;LC_NUMERIC=C;LC_TIME=Chinese_People's Republic of China.936"
> print('试试')
[1] "试试"
> read.table("c:/CHS.txt",sep=" ") #Chinese: the 1st record/observation
  V1   V2  V3 V4  V5   V6
1 122 第一 122 条 122 记录 

如果只想更改显示编码,而不想更改语言环境的其他方面,请使用LC_CTYPE而不是LC_ALL

代码语言:javascript
复制
> Sys.setlocale(category = "LC_CTYPE", locale = "chs")
[1] "Chinese_People's Republic of China.936"
> print('试试')
[1] "试试"

当然,这只适用于官方的R控制台。如果您使用其他集成开发环境,例如非常流行的RStudio,则根本不需要执行此操作即可输入和显示中文,即使您没有加载中文语言环境。

从下面的评论中移植一些有用的东西:

如果数据仍然不能正确显示,我们还应该检查文件编码的问题。如果文件是UTF-8编码的,那么data <- read.table("you_file", sep=',', fileEncoding="UTF-8-BOM", header=TRUE)fileEncoding="UTF-8"就可以了,这取决于它实际采用的是哪种编码。

但您可能希望远离UTF-BOM,因为不推荐这样做:What's different between UTF-8 and UTF-8 without BOM?

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24473681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档