如何从R中打印中文字符?

3

我可以从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个回答

1

虽然不是一个答案,但我搜索到了几篇帖子,表明你不是第一个在RStudio中遇到编码问题的人。可以通过以下方式访问默认设置:

enter image description here

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

enter image description here

你可能还需要使用Sys.setlocale,但我建议先尝试更改RStudio的默认设置,因为似乎你最初能够打印这些字符。我无法确认在Mac上运行R.app GUI或在Mac上运行RStudio时出现了你的问题:
> fi <- '~/test.txt'
> g <- readLines(con=fi, encoding='UTF-8')
> g
[1] "发动机测谎报告"

Unicode 的高位值使用引号反斜杠-'u'-数字-引号进行处理。请参见帮助页面:
?Quotes

'\u53D1'
[1] "发"

但是尝试用"\U"替换"<U+"会失败,因为R解析器不会接受没有紧随其后的十六进制数字的裸露的"\U"。

谢谢。设置区域设置不起作用,因为我需要从同一程序中打印多种语言的报告。您的示例显示您可以在Mac上阅读中文。我在Windows上也是如此。我的代码显示我完美地读取了某个编辑器中创建的中文文本,并在RStudio中正确显示它。我无法将中文文本打印出来(写入磁盘),使其看起来像中文。在Windows上,R无法打印(写入、导出)我在RStudio界面中看到的中文字符。这就是问题所在。 - Marina
在许多情况下,问题是特定应用程序使用的特定字体没有特定 Unicode 字符的字形。即使使用相同名称和一般行为的应用程序(RStudio?),R 使用的默认字体在 Mac 和 Windows 上也不同。 - IRTFM
同意user3276530的看法。我曾试图在我的中文Windows操作系统上安装R,但如果您的系统不是英语的话,它会出现很多问题。在最糟糕的情况下,弹出窗口也将以随机字母显示。我建议您更改操作系统语言为英语,如果在新操作系统上仍然无法解决问题。这可能是R所需修复的兼容性问题。 - Chun Wan Mo
有没有人找到这个问题的解决方案?您是否尝试过使用 writeLines(...,useBytes=TRUE)writeChar(...,useBytes=TRUE) - user3004015
请注意,我认为这不是RStudio的问题,因为我在http://win-builder.r-project.org/上验证软件包时发现了这个问题,我怀疑其后端并没有使用RStudio... - user3004015

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接