problema - ubuntu acentos no funcionan
la máquina virtual se está ejecutando con la codificación de nombre nativo de latin1, lo que puede provocar que el elixir funcione mal como espera utf8 (5)
Al parecer, el problema no estaba LC_ALL=
, lo comprobé
$ cat /etc/default/locale
LANG="en_US.utf8"
LANGUAGE="en_US:"
asegurando que falta LC_ALL
, para arreglarlo, ejecuté:
$ sudo update-locale LC_ALL=en_US.UTF-8
este comando agregó LC_ALL
al /etc/default/locale
:
$ cat /etc/default/locale
LANG="en_US.utf8"
LANGUAGE="en_US:"
LC_ALL=en_US.UTF-8
y el error se ha ido.
¿Cómo resolver esta advertencia que se solicita cada vez que ejecuto el código Elixir o ingreso iex
?
advertencia: la máquina virtual se está ejecutando con la codificación de nombre nativo de latin1, lo que puede ocasionar que el Elixir no funcione correctamente, ya que espera utf8. Asegúrese de que su configuración regional esté establecida en UTF-8 (que puede verificarse ejecutando "configuración regional" en su shell)
$ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.utf8
LANGUAGE=en_US:
LC_CTYPE=UTF-8
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04 LTS
Release: 14.04
Codename: trusty
En centOS 7 me funcionó lo siguiente:
localedef -c -f UTF-8 -i en_US en_US.UTF-8
export LC_ALL=en_US.UTF-8
Debería funcionar para la mayoría, si no todas las distribuciones de RHEL. ¡Aclamaciones!
Esto sucede cuando hace SSH de su computadora portátil Mac a un servidor Linux (incluido un servidor Linux virtual que se ejecuta en su computadora portátil). SSH reenvía las variables de entorno LANG
y LC_*
del shell local al shell remoto, y algunos de los valores utilizados en Mac no son válidos en el servidor Linux.
El problema se puede solucionar de varias maneras, incluida la instalación de las configuraciones regionales que faltan en el servidor. Recomiendo simplemente deshabilitar el reenvío del entorno SSH, ya sea en el servidor (eliminar AcceptEnv
en /etc/ssh/sshd_config
) o en la computadora portátil (eliminar SendEnv
en /etc/ssh/ssh_config
).
Lea más en ¿Cómo corregir una advertencia de configuración regional de Perl?
Estoy usando erlang dentro de un contenedor docker y las otras soluciones no lo cortaron. Es posible que el comando update-locale
no esté disponible dentro de un contenedor ubuntu docker, así que robé algo de código que lo instala desde https://hub.docker.com/r/voidlock/erlang/~/dockerfile/ .
apt-get update && apt-get install -y --no-install-recommends locales
export LANG=en_US.UTF-8 /
&& echo $LANG UTF-8 > /etc/locale.gen /
&& locale-gen /
&& update-locale LANG=$LANG
Para mí, establecer la configuración regional en mi script de inicio /etc/init/my_start_script.conf
hizo el truco
env LC_ALL=en_US.UTF-8
export LC_ALL