将阿拉伯文本分配给R变量

时间:2013-09-07 20:22:08

标签: r unicode encoding locale iconv

R无法正确显示阿拉伯文字。当我使用阿拉伯语时,我会得到非常奇怪的东西。这是一个截图:

enter image description here

问题是我想创建一个带有阿拉伯文字的wordcloud,我需要先解决这个问题。

R版本:R 2.15.2 GUI 1.53 Leopard构建64位(6335)

以下是更多信息:

> options("encoding")
$encoding
[1] "native.enc"

> Encoding("الله")
[1] "unknown"

SessionInfo():

> sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)

locale:
[1] C/C/C/C/de_DE/C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] tools_2.15.2
> 

一些修补:

> x = "مرحبا"
> Encoding(x) = "UTF-8"
> x
[1] "<U+0645><U+0631><U+062D><U+0628><U+0627>"
> Encoding(iconv(x))
[1] "unknown"

更多信息:

> Sys.getlocale()
[1] "C/C/C/C/de_DE/C"
> Sys.setlocale("LC_ALL", "en_US.utf8")
[1] ""
Warning message:
In Sys.setlocale("LC_ALL", "en_US.utf8") :
  OS reports request to set locale to "en_US.utf8" cannot be honored
> 

这解决了这个问题:

Sys.setlocale("LC_ALL", "en_US.UTF-8")

2 个答案:

答案 0 :(得分:2)

这有效:

Sys.setlocale("LC_ALL", "en_US.UTF-8")

答案 1 :(得分:0)

只是想指出我没有遇到这个问题(阿拉伯字符显示正确而不改变语言环境),即使我不是UTF-8语言环境。不知道该怎么做,所以如果有其他人请,请启发我们。

我正在使用RStudio 0.98.1091,我的sessionInfo如下:

> sessionInfo()
R version 3.1.2 (2014-10-31)
Platform: i386-w64-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=French_France.1252  LC_CTYPE=French_France.1252    LC_MONETARY=French_France.1252
[4] LC_NUMERIC=C                   LC_TIME=French_France.1252