以下测试在我的笔记本电脑上运行良好,但在运行Windows 10 的HP EliteOne 800上产生错误
H <- "שלום"
H
在有问题的机器上,我得到了
[1] "Áìåí"
我测试了几种编码,比如
Encoding(H) <- "ISO-8859-1"
其给出相同的输出,以及
Encoding(H)<-"UTF-8"
H
产生
[1] "\xf9\xec\xe5\xxed"
以下是对的回应
sessionInfo()
R版本3.2.2(2015-08-14)平台:x86_64-w64-mingw32/x64(64位)运行环境:Windows 8 x64(内部版本9200)
区域设置:[1]LC_COLLATE=Hebrew_Israel.1255 LC_CTYPE=Hebrew_Israel.125LC_MONETARY=Hebrew_Israel.1255[4]LC_NUMERIC=C
LC_TIME=Hebrew_Israel.1255附加的基本包:[1]统计图形grDevices实用程序
基于的数据集方法通过命名空间加载(未附加):[1]tools_3.2.2
任何帮助都将不胜感激,
Avi
谢谢Richard,你让我找到了一个有效的解决方案——尽管我不明白为什么。我玩了各种各样的代码,不小心把我的语言环境改成了日语,就可以了。然后我测试了其他各种地方,他们也做了同样的事情。如果有人知道为什么希伯来语不适用于希伯来语地区,我很想知道。以下是代码及其产品:
H <- "שלום" H Sys.getlocale() Sys.setlocale("LC_ALL", "Hebrew") H <- "שלום" H Sys.getlocale() Sys.setlocale("LC_ALL", "ja") H <- "שלום" H Sys.setlocale("LC_ALL", "Portuguese_Brazil.1252") H <- "שלום" H Sys.setlocale("LC_ALL", "German") H <- "שלום" H produces the following output, where only the Hebrew locale does not show Hebrew.
H<-"Şدد"
H
>[1]"Áìåí"#BREW 中的问题
Sys.getlocale()
[1] "LC_COLLATE=Hebrew_Israel.1255;LC_CTYPE=Hebrew_Israel.125;LC_MONETARY=Hebrev_Israel.125;LC_NUMERIC=C;LC_TIME=Hebrew _Israel 1255"
系统设置区域设置("LC_ALL"、"希伯来语")
[1] "LC_COLLATE=Hebrew_Israel.1255;LC_CTYPE=Hebrew_Israel.125;LC_MONETARY=Hebrev_Israel.125;LC_NUMERIC=C;LC_TIME=Hebrew _Israel 1255"
H<-"Şدد"H
>[1]"Áìåí"#BREW 中的问题
Sys.getlocale()
[1] LC_COLLATE=Hebrew_Israel.1255;LC_CTYPE=Hebrew_Israel.1255;LC_MONETARY=Hebrew_Israel.1255;LC_NUMERIC=C;LC_TIME=Hebrew_Israel.1255"
系统设置区域设置("LC_ALL"、"ja")
[1] "LC_COLLATE=日本_Japan.932;LC_CTYPE=日本_Japane_Japan.942;LC_MONETARY=日本_日本.932;LCO_NUMERIC=C;LC_TIME=日本_Japan.932"
>H<-"Şدد"#其他语言的解决方案有效——也参见下面的
H
[1] "Şدد"
系统设置区域设置("LC_ALL","Portuguese_Brazil.1252"
H<-"Şدد"
H
[1] "Şدد"
系统设置区域设置("LC_ALL","德语")[1]"LC_COLLATE=德国.1252;LC_CTYPE=德国.1252,LC_MONETARY=德国.1222;LC_NUMERIC=C;LC_TIME=德国.1272"
H<-"Şدد"
H
[1] "Şدد"