如何在Windows下显示带有Unicode字符的消息/警告/错误?

时间:2015-09-21 13:15:12

标签: r unicode utf-8

我有一条包含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消息,警告和错误?

1 个答案:

答案 0 :(得分:0)

我注意到R中函数Sys.setlocale()的帮助说:“LC_MESSAGES”在不支持消息转换的系统上是“C”,在Windows上不支持

对我而言,这听起来像修改R消息/错误的字符表示无法在任何Windows版本上完成...