r - 如何在 R 中输出汉字(汉字/汉字/汉字)?
问题描述
如何在 R 中输出汉字(汉字/汉字/汉字)?出乎意料的是,它们被转义到了它们的 Unicode 代码点中:
> "中文"
[1] "\u4e2d\u6587"
> print("中文")
[1] "\u4e2d\u6587"
在终端 R 会话和 RStudio 中都是这种情况。
期望的输出是:
> "中文"
[1] "中文"
我需要更改哪些设置才能获得此输出?
大多数其他有类似问题的帖子似乎通过将语言环境更改为 UTF-8 来解决这个问题,但我已经在使用一个:
> Sys.getlocale()
[1] "de_DE.UTF-8/de_DE.UTF-8/de_DE.UTF-8/C/de_DE.UTF-8/de_DE.UTF-8"
此示例与其他 Unicode 示例按预期工作:
> "\U0001f600\U0001f601\U0001f602\U0001f603\U0001f604\U0001f605\U0001f606\U0001f607\U0001f608\U0001f609\U0001f60a\U0001f60b\U0001f60c\U0001f60d\U0001f60e\U0001f60f\U0001f610\U0001f611\U0001f612\U0001f613\U0001f614\U0001f615\U0001f616\U0001f617\U0001f618\U0001f619\U0001f61a\U0001f61b\U0001f61c\U0001f61d\U0001f61e\U0001f61f\U0001f620\U0001f621\U0001f622\U0001f623\U0001f624\U0001f625\U0001f626\U0001f627\U0001f628\U0001f629\U0001f62a\U0001f62b\U0001f62c\U0001f62d\U0001f62e\U0001f62f\U0001f630\U0001f631\U0001f632\U0001f633\U0001f634\U0001f635\U0001f636\U0001f637\U0001f638\U0001f639\U0001f63a\U0001f63b\U0001f63c\U0001f63d\U0001f63e\U0001f63f\U0001f640\U0001f641\U0001f642\U0001f643\U0001f644\U0001f645\U0001f646\U0001f647\U0001f648\U0001f649\U0001f64a\U0001f64b\U0001f64c\U0001f64d\U0001f64e\U0001f64f"
[1] ""
> ""
[1] ""
> print("ひらがな") # Japanese hiragana
[1] "ひらがな"
> print("한글") # Korean
[1] "한글"
奇怪的是,这个问题似乎只适用于汉字(当然也适用于日文,print("源氏物語")
自然是行不通的)。其他软件包显然能够输出正确的字符:
> string_zh <- c("中", "文")
> string_zh
[1] "\u4e2d" "\u6587"
> tibble::tibble(string_zh)
# A tibble: 2 x 1
string_zh
<chr>
1 中
2 文
以下也有效:
> utf8::utf8_print("中文")
[1] "中文"
> cat("中文")
中文
这是我正在运行的内容:
> sessionInfo()
R version 4.0.4 (2021-02-15)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS High Sierra 10.13.6
Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRblas.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib
locale:
[1] de_DE.UTF-8/de_DE.UTF-8/de_DE.UTF-8/C/de_DE.UTF-8/de_DE.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_4.0.4 utf8_1.2.1
解决方案
显然,这是一个错误R 4.0.4
(参见错误报告),应该在下一个版本中修复。
推荐阅读
- openedge - 用于按升序对列表值进行排序的函数
- oauth - 令牌端点中的 keycloak 密码哈希
- java - 没有可用的事务性 EntityManager 异常
- python - 使用 BeautifulSoup 和 selenium 抓取特定的标签 html
- javascript - 从 JQuery 调用 WCF 服务返回 400 错误请求
- php - 如何使用 laravel 5.6 在 bagisto 上执行升级
- r - 按矩阵的列对列表中的值进行排序
- ansible - 在ansible中使用组在串行上循环主机
- keycloak - 为什么 Keycloak 在配置 Web Origins 后仍会抱怨 CORS?
- java - 这个集合排序在java中是如何工作的?