instalacion - windows no puede establecer la informacion de configuracion regional sin conexion 0x80ff0000
Establecer la configuración regional en el sistema predeterminado UTF-8 (3)
Cuando se ejecuta R dentro de rApache, la configuración regional se hereda del servidor web Apache y, por Sys.getlocale()
tanto, Sys.getlocale()
siempre es igual a "C"
. Me gustaría que mi aplicación web usara UTF8
, entonces uso:
Sys.setlocale("LC_ALL", ''en_US.UTF-8'')
Sin embargo, esto no funciona en máquinas que no tienen esta configuración regional disponible:
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”
¿Hay alguna forma de usar Sys.setlocale
para establecer la configuración regional en el valor predeterminado del sistema UTF-8
? ¿Es algo que también funcionaría en Windows o en un Linux alemán?
Prueba esto:
Sys.setlocale(category = "LC_ALL", locale = "English_United States.1252")
Respondiendo a mi propia pregunta: en Ubuntu, el LANG
predeterminado se define en /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"
Así que en R podríamos hacer algo como:
readRenviron("/etc/default/locale")
LANG <- Sys.getenv("LANG")
if(nchar(LANG))
Sys.setlocale("LC_ALL", LANG)
Apache también tiene una línea en /etc/apache2/envvars
que no se puede comentar para habilitar esto.
Supongo que necesitas hacer una comprobación para el sistema operativo. Los nombres de configuración regional difieren según el sistema operativo; consulte los ejemplos en el archivo de ayuda.
?Sys.getlocale()
Examples
Sys.getlocale()
Sys.getlocale("LC_TIME")
## Not run:
Sys.setlocale("LC_TIME", "de") # Solaris: details are OS-dependent
Sys.setlocale("LC_TIME", "de_DE.utf8") # Modern Linux etc.
Sys.setlocale("LC_TIME", "de_DE.UTF-8") # ditto
Sys.setlocale("LC_TIME", "de_DE") # OS X, in UTF-8
Sys.setlocale("LC_TIME", "German") # Windows
## End(Not run)
Sys.getlocale("LC_PAPER") # may or may not be set
## Not run:
Sys.setlocale("LC_COLLATE", "C") # turn off locale-specific sorting,
# usually, but not on all platforms
## End(Not run)