LC_ALL = C está configurado, no tengo idea de por qué

1

Estoy usando st, el terminal simple o suckless-terminal, que es un terminal con soporte Unicode.

Tengo dos máquinas, ambas ejecuto Arch Linux con básicamente la misma configuración del sistema, ¡pero solo recibo soporte Unicode en la máquina vieja!

Después de investigar un poco, creo que tiene algo que ver con mis locales, pero no estoy completamente seguro.

locale da:

[tim@x1carbon: ~]$ locale
LANG=en_DE.UTF-8
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=C

desde mi punto de vista, eso significa que todo lo que está escrito "..."se establece implícitamente, por lo que las únicas configuraciones regionales explícitamente serían LANGy LC_ALL.

Me he fijado LANG=de_DE.UTF-8en /etc/locale.conf.

[tim@x1carbon: ~]$ cat /etc/locale.conf
LANG=de_DE.UTF-8
LC_COLLATE=C
LANGUAGE=en_US.UTF-8

¡pero no recuerdo haber configurado LC_ALL(en mi máquina anterior esa variable está vacía cuando ejecuto locale)!

Ejecuté sudo grep -rnw '/usr/' -e 'LC_.*=C'(un patrón de búsqueda que revisa todos los archivos en /usr/-directory) que genera muchos scripts y archivos que contienen LC_ALL=C, pero en la mayoría de los casos supongo que los programas existentes solo estaban leyendo mi LC_ALLvariable de conjunto y agregando variables coincidentes a sus scripts.

No puedo encontrar, donde realmente configuré esta variable y podría estar equivocado con mi comprensión, que esa es la razón de la representación falsa, pero aún así: LC_ALLcreo que una configuración regional falsa puede causar muchos otros problemas.

Además, localectl statussaca:

[tim@x1carbon: ~]$ localectl status
   System Locale: LANG=de_DE.UTF-8
                  LANGUAGE=en_US.UTF-8
                  LC_COLLATE=C
       VC Keymap: de-latin1
      X11 Layout: n/a

... que es la misma salida que en la máquina de trabajo.

He canalizado la salida del grepcomando a un archivo de registro y puedo cargar este archivo en algún lugar, pero no sé cómo hacerlo correctamente ya que todavía no había razón para hacerlo.

Tim Hilt
fuente

Respuestas:

1

Entonces, después de abrir un hilo en el Archlinux-Forum, alguien señaló que podría estar estableciendo LC_ALL=Cen algún lugar de un archivo en mi Home-Directory. Después de correr grep -rnw '/home/' -e 'LC_.*=C'encontré que en mi .bashrc, había una línea que decía

export LC_ALL=C

que eliminé Después de un reinicio, la ejecución localeme dio la en_DE.UTF-8mayoría de mis configuraciones regionales, lo que es aún más confuso. Pero después de buscar en mi configuración regional (usando KDE como mi escritorio), descubrí que mi configuración de "Formato" estaba establecida en en_DE. Suprimido eso también, reiniciado, ahora todo funciona como se esperaba.

Tim Hilt
fuente
0

"¿Podría ser este el problema?" - Si.

La mayoría de las aplicaciones toman la codificación de LC_ALL, LC_CTYPEo LANG, la primera que no está vacía en esta lista. El valor resuelto también se muestra con locale charmap. Por lo que yo entiendo, usted LC_CTYPE=Cno está seguro de su LC_ALL. Deben contener una configuración regional UTF-8 en lugar de C.

"¿Cómo es que las configuraciones regionales de mi sistema anterior están configuradas?". La pregunta debería ser: ¿cómo es que no están configuradas en su nuevo sistema? Lamentablemente no puedo responder a esto, pero deberían establecerse.

egmont
fuente
Gracias, eso me ha guiado en la dirección correcta, creo. Ver edición a la pregunta original
Tim Hilt