【问题标题】:Working with two different languages in R (Windows 10)在 R (Windows 10) 中使用两种不同的语言
【发布时间】:2017-07-19 11:11:39
【问题描述】:

我在使用带有两组不同字符的 R 时遇到问题。特别是当我使用塞尔维亚拉丁语和马其顿西里尔语时。

当我的系统语言环境设置为塞尔维亚拉丁语时,我可以使用和操作独特的塞尔维亚语字符 (čćšđ),但是当我将它们保存为 csv 时,马其顿西里尔文会出现在 R 控制台中。

当我将系统区域设置更改为西里尔文时,情况正好相反。我可以读写西里尔字母,但不能读写塞尔维亚拉丁字母。

有没有办法让我在同一个 R 会话中同时使用两者?

【问题讨论】:

  • 您的系统似乎使用了特定于语言的编码。您是否尝试过使用 UTF-8 编码?
  • 我该怎么做呢?当我的 Windows 设置为默认值(美国英语)时,我无法使用这些字符集。这就是我改变语言环境的原因。

标签: r encoding locale cyrillic


【解决方案1】:

您的问题太笼统,无法回答;提供更多信息,我很乐意将其编辑为未来读者的正确答案。

假设您使用的是 RStudio,默认编码是系统编码。这就是您获得所描述行为的原因。您应该将 RStudio 默认编码设置为 UTF-8,覆盖系统区域设置。进一步注意您将 csv 保存到哪种字符格式。

【讨论】:

  • 相反,它根本不是通用的。 R 和 R Studio 确实在 Unicode 方面存在严重问题。 R 是使用 ASCII 字符串 (char) 而不是 Unicode (char16_t) 编写的,并且依赖于操作系统使用 UTF8 语言编码来处理 Unicode 数据。虽然 Windows 是 Unicode 操作系统,但 encodings 指的是非 Unicode 应用程序。即没有UTF8 编码。当所有应用程序都为 Unicode 构建时,就没有必要了。
  • 2) R 的代码被修改为仅在 Windows 上使用 Unicode (char16_t) 并在 Linux 上继续使用 char。大多数受代码页问题影响的函数都允许您指定代码页。毕竟,塞尔维亚人可能想要阅读土耳其语数据文件。不幸的是,许多包 R Studio 仍然依赖于系统编码。并且忘记处理多个代码页 - 它们不允许您指定编码
  • 3) 最后,R Studio 本身也有问题。您必须明确指定脚本以 UTF8 格式保存和加载,否则将使用当前语言环境的代码页保存。直到您尝试阅读脚本并发现文本值是乱码或被方框或? 字符替换后,这一点才明显
  • 感谢您的 cmets。我目前的“解决方案”是使用 linux 虚拟机。
【解决方案2】:

以下链接提供了许多有关编码的详细信息。我认为看看它可能会有所帮助。祝你好运。

访问https://rstudio-pubs-static.s3.amazonaws.com/279354_f552c4c41852439f910ad620763960b6.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-27
    • 1970-01-01
    • 2015-07-20
    • 2017-06-06
    • 2020-01-27
    • 2014-09-30
    • 1970-01-01
    相关资源
    最近更新 更多