Приведенный ниже пример кода:
arabic <-" السعودية"
png("arabic.png", 500, 500, res = 72)
plot(1, 1, type ="n"); text(1,1, arabic, cex = 4)
dev.off()
sessionInfo()
На одной машине с RServer Studio он работает отлично (подумайте - я не умею читать по-арабски ...):
В то время как на второй машине с RStudio Server (так же как и в Linux) это не так:
Вот сессияпервая, работающая машина:
R version 3.3.3 (2017-03-06)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Debian GNU/Linux 9 (stretch)
locale:
[1] LC_CTYPE=en_NZ.UTF-8 LC_NUMERIC=C LC_TIME=en_NZ.UTF-8 LC_COLLATE=en_NZ.UTF-8
[5] LC_MONETARY=en_NZ.UTF-8 LC_MESSAGES=en_NZ.UTF-8 LC_PAPER=en_NZ.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=en_NZ.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] tools_3.3.3
и вторая, не работающая:
R version 3.4.4 (2018-03-15)
Platform: x86_64-redhat-linux-gnu (64-bit)
Running under: Amazon Linux 2 (2017.12) LTS Release Candidate
Matrix products: default
BLAS/LAPACK: /usr/lib64/R/lib/libRblas.so
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_3.4.4 tools_3.4.4 yaml_2.1.19
Я должен также сказать, что я пробовал этот код на машинах Windows с R 3.5 и 3.4.2, и он работает нормально, так что маловероятно, что это версия R является фактором, но что-то о базовых машинах.Я предполагаю, что на нерабочем компьютере отсутствует какая-то поддержка UTF-8, и если бы я знал, что это такое, я мог бы установить его, но я не знаю.
Есть идеи?
Обновление с более широким диапазоном символов
Чтобы добавить к загадке, моя неработающая система работает с некоторыми типами символов (в основном, европейскими), но не с другими.Для иллюстрации:
misc <- "pučina, Māori ¡Qué tranza o qué!"
chinese <- "中華民族"
arabic <-" السعودية"
russian <- "катынь"
plot(1, type = "n")
text(1, 1.2, misc)
text(1,1, chinese)
text(1, 0.8, arabic)
text(1, 0.65, russian)
Китайский и арабский не работают;Русский и сборник европейских наборов символов делают.Также, если кому-то интересно:
> Encoding(arabic)
[1] "UTF-8"
> Encoding(misc)
[1] "UTF-8"
> Encoding(chinese)
[1] "UTF-8"