当在 rApache 中运行 R 时,语言环境是从 Apache Web 服务器继承的,因此Sys.getlocale()
总是等于"C"
。我希望使用我的网络应用程序UTF8
,所以我使用:
Sys.setlocale("LC_ALL", 'en_US.UTF-8')
但是,这不适用于没有此区域设置的计算机:
1: Setting LC_CTYPE failed, using "C"
2: Setting LC_COLLATE failed, using "C"
3: Setting LC_TIME failed, using "C"
4: Setting LC_MESSAGES failed, using "C"
5: Setting LC_MONETARY failed, using “C”
有什么办法可以使用吗Sys.setlocale
将区域设置设置为系统默认值UTF-8
? IE。是否也可以在 Windows 或德国 Linux 上运行?
回答我自己的问题:在 Ubuntu 上默认LANG
定义于/etc/default/locale
:
jeroen@dev:~⟫ cat /etc/default/locale
# Created by cloud-init v. 0.7.7 on Wed, 29 Jun 2016 11:02:51 +0000
LANG="en_US.UTF-8"
所以在 R 中我们可以这样做:
readRenviron("/etc/default/locale")
LANG <- Sys.getenv("LANG")
if(nchar(LANG))
Sys.setlocale("LC_ALL", LANG)
Apache 也有一条线/etc/apache2/envvars
可以取消注释来启用此功能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)