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

如何在r控制台中显示和输入中文(和其他非ASCII)字符?,r,R,我的系统:win7 ultimate 64英文版+r-3.1(64)。 这是我的会话信息 > 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_Uni

我的系统:win7 ultimate 64英文版+r-3.1(64)。
这是我的会话信息

> 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控制台中读取数据时,汉字会变成乱码。
您可以下载数据,并使用

read.table("r1.csv",sep=",")

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

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

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

> 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\u CTYPE
而不是
LC\u ALL

> Sys.setlocale(category = "LC_CTYPE", locale = "chs")
[1] "Chinese_People's Republic of China.936"
> print('试试')
[1] "试试"
现在,这当然只适用于官方
R
控制台。如果您使用其他IDE,例如非常流行的
RStudio
,即使没有加载中文区域设置,也不需要这样做就可以键入和显示中文

从以下注释中迁移一些有用的内容:
如果数据仍然无法正确显示,我们还应该研究文件编码问题。如果文件是
UTF-8
编码的,则标题
数据可以发布
sessionInfo()
的输出吗?区域设置:[1]LC_COLLATE=English_used.1252 LC_CTYPE=English_used.1252 LC_MONETARY=English_used.1252 LC_NUMERIC=C LC_TIME=English_used.1252将其输入原始问题的文本。您是否在Windows中启用了东亚语言支持?Rolf,@richardscriveni我能把它写入一个配置文件吗?是的,它被称为启动文件,请看这个:在您允许的情况下。我可以建议在r控制台中将标题改为
…中文(和其他非ASCII)字符吗?
,这个问题不是真正针对中文的,其他人也可能从中受益。关于这篇文章的最后一个问题是:如果数据文件()是ansi格式的,则可以正确显示中文字符,如果数据文件保存为utf格式,相同的read.table命令不能显示汉字,它是一个乱码。请使用记事本以utf-8格式重新保存数据文件,然后尝试
read.table(“r1.csv”,sep=“,”)
。如果数据文件是utf8格式,我该怎么办?您可以使用记事本以ansi格式更改所有数据文件,并使用read.table在r中打开它,还有其他方法吗?