如何从R打印中文字母?

时间:2016-07-06 17:23:11

标签: r encoding utf-8 rstudio

我可以从R读中文,看看RStudio中的中文单词。但是我无法弄清楚如何从R代码中打印(写入)那些中文单词。 以下是控制台上代码的示例:

fi <- 'c:\\R_Routines\\Ch.txt'
g <- readLines(con=fi, encoding='UTF-8')
g
# [1] "发动机测谎报告"
fo <- 'c:\\R_Routines\\Ch1.txt'
fa <- file(fo, encoding='UTF-8')
writeLines(g, con= fa)
fi <- 'c:\\R_Routines\\Ch1.txt'
g <- readLines(con=fi, encoding='UTF-8')
g
# [1] "<U+53D1><U+52A8><U+673A><U+6D4B><U+8C0E><U+62A5><U+544A>"

如何输出(在磁盘上写入)带有我从文件中读取的中文单词的文本文件?

1 个答案:

答案 0 :(得分:1)

不是真正的答案,但我的搜索发现有几个帖子表明你不是第一个在RStudio中遇到编码问题的人。可以通过以下方式访问默认值:

enter image description here

这是Windows用户的屏幕截图。这是我在Mac上找到默认设置的可能位置的地方:

enter image description here

您可能还需要使用Sys.setlocale,但我首先尝试更改ht RStudio默认设置,因为您似乎可以初次打印字符。我无法在运行R.app GUI或在Mac上运行RStudio的Mac上确认您的问题:

> fi <- '~/test.txt'
> g <- readLines(con=fi, encoding='UTF-8')
> g
[1] "发动机测谎报告"

Unicode的较高值由quote-backslash处理 - &#39; u&#39; -numbers-quote。请参阅帮助页面:

?Quotes

'\u53D1'
[1] "发"

但是尝试用"<U+"替换"\U"会失败,因为R解析器不接受裸#34; \ U&#34;没有成功的十六进制数字。