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