我们正在清理一些繁体中文的营销数据。我们发现R可以毫无问题地读取UTF-8繁体中文变量名。但是,我们无法在那里获得有效的UTF-8输出。例如,
如果我们命令:unique(rframe$性別)
这就是我们得到的:[1] "\u5973" "\u7537"
其中,性別是“性别”,\u5973表示女性(女),\u7537表示男性(男)。
最有趣的是,如果我们使用相同的UTF-8CSV文件,则Linux平台上的R会生成有效的UTF-8中文输出。为什么在Linux平台上可以成功生成UTF-8中文输出编码的同一个RStudio,在Mac系统上却不能输出有效的UTF-8中文输出?
这个非常麻烦的问题已经存在了很长一段时间。事实上,在旧的RStudio版本中,我们可以得到有效的UTF-8输出。有朋友能帮我们吗?
非常感谢。
钱德勒
发布于 2021-03-27 23:24:56
数据导入过程中可能出现错误。您是如何导入数据的?
我试着导入了一些带有中文字符的数据,并专门使用了encoding="UTF-8“,我没有任何问题。
所以我的第一个建议是试试这个:
data <-read.csv("mydata.csv", encoding="UTF-8", stringsAsFactors=FALSE)另一种方法是将变量指定为字符。根据下面的answer。所以你得到的是中文字符,而不是unicode。
as.character(unique(rframe$性別))如果您提供数据的摘录,我可以检查并可能确认这一点。
发布于 2021-03-28 15:03:30
经过几次试验和错误,我们发现这个问题可能来自于在Mac上生成R应用程序的过程。
我们从Git下载了R,并通过Apple clang版本12.0.0 (clang-1200.0.32.29,Target: x86_64-apple-darwin19.6.0)从源代码编译了一个应用程序。它工作得很好。我们的麻烦问题不会再出现了。我们今天向R协会报告了我们的发现。我们希望人们能很快看到一个快速的回应。
下面的消息是我们发送给R的报告。
致:bug-report-request:bug-report-request@r-project.org
嗨,
我更像是一个系统程序员,帮助我的朋友(Chandler)使用R来处理数据。他在终端上获取中文/ Unicode输出时遇到了相当大的困难。然而,这只发生在Mac上。我不能在Linux上重现它。
我认为在R- Mac版本上可能会有一些错误。我用GitHub中的源代码重新编译了R,我不能重现这个问题。从网站下载一次,即可复制,失败率为100%。
详情请参见https://www.facebook.com/groups/RnRStudio/permalink/4555694011125386/。
我认为这是因为编译R/ MAC的工具链可能已经过时了。
如果你可以在Bugzilla上创建一个bug,并让我在那里发表评论,我就不需要Bugzilla帐户了。或者,如果你们中的任何人能赞助这个问题,那就更好了。
否则我需要一个Bugzilla帐户。
谢谢!
发布于 2021-04-01 17:27:41
此问题来自R 4.0.4版源代码中的错误。UTF-8代码无法在Windows和Mac上有效显示。它已在版本4.0.5中修复。
https://stackoverflow.com/questions/66832589
复制相似问题