我有一条包含Unicode字符的消息(或警告或错误)。 (该字符串具有UTF-8
编码。)
x <- "\u20AC \ub124" # a euro symbol, and Hangul 'ne'
## [1] "€ 네"
Encoding(x)
## [1] "UTF-8"
在Linux下,如果语言环境为UTF-8(l10n_info()$`UTF-8`
返回TRUE
),则会在消息中打印确定。
我可以强制执行此操作,例如,
devtools::with_locale(
c(LC_CTYPE = "en_US.utf8"),
message(x)
)
## € 네
在Windows下没有UTF-8语言环境,因此我无法找到强制执行正确打印的等效方法。例如,对于美国语言环境,韩文字符无法正常显示。
devtools::with_locale(
c(LC_CTYPE = "English_United States"),
message(x)
)
## € <U+B124>
在Windows下打印数据框时,有一个related problem的Unicode字符无法正常显示。建议将语言环境设置为中文/日文/韩文。这在这里不起作用。
devtools::with_locale(
c(LC_CTYPE = "Korean_Korea"),
message(x)
)
## ¢æ ³× # equivalent to iconv(x, "UTF-8", "EUC-KR")
如何在Windows下正确显示UTF-8消息,警告和错误?
答案 0 :(得分:0)
我注意到R中函数Sys.setlocale()的帮助说:“LC_MESSAGES”在不支持消息转换的系统上是“C”,在Windows上不支持
对我而言,这听起来像修改R消息/错误的字符表示无法在任何Windows版本上完成...