Problemas de OS X Terminal UTF-8

Bueno, finalmente conseguí una MacBook Air después de 15 años de Linux. Y antes de que lo obtuviera, mi gran preocupación era la compatibilidad con UTF-8 porque no importa si recibo archivos de windows o mac-clients, siempre hay problemas con la encoding, mientras que en ubuntu puedo estar seguro de que todos los resultados no importan qué progtwig producir datos codificados utf-8 perfectos.

Y ahora en mi segundo día (hoy) con OS X me estoy rompiendo el pelo por la frustración. ¿Por qué?

Cuando abro Nano y escribo algunos caracteres suecos como ÅÄÖ, pone caracteres en blanco al final de la línea (que supongo que es el otro byte en cada carácter)

Cuando abro Python y trato de usar caracteres suecos, no produce nada en absoluto

Cuando me conecto a un servidor Ubuntu a través de SSH, no puedo escribir åäö en bash, es difícil que funcione en VIM (todavía a través de SSH). Y en nano backspace no funciona, pero si marca la casilla “Eliminar envía ctrl + H” en las preferencias de Terminal, el retroceso comienza a trabajar en nano pero deja de funcionar en VIM.

Intenté desmarcar todas las otras codificaciones y luego UTF-8 en las preferencias de la terminal, pero eso tampoco parece funcionar.

Estoy seguro de que todas las personas que no sean estadounidenses deben tener los mismos problemas, así que, ¿por qué los soluciono? Solo quiero soporte completo para UTF-8 …: ‘(

Para mí, esto me ayudó: comprobé la configuración regional en el shell local en la terminal

 $ locale LANG="cs_CZ.UTF-8" LC_COLLATE="cs_CZ.UTF-8" 

Luego, me conecté a cualquier host remoto que estoy usando a través de ssh y edité el archivo / etc / profile como root – al final agregué la línea:

 export LANG=cs_CZ.UTF-8 

Después de la próxima conexión funciona bien en bash, ls y nano.

Desafortunadamente, el cuadro de diálogo Preferencias no siempre es muy útil, pero al ajustarlo debería poder hacer que todo funcione.

Para poder escribir caracteres suecos en Terminal, agregue las siguientes líneas a su ~ / .inputrc (lo más probable es que deba crear este archivo):

 set input-meta on set output-meta on set convert-meta off 

Esto debería hacer el trabajo tanto con utf8 como con otras codificaciones en bash , nano y muchos otros progtwigs. Algunos progtwigs, como tmux , también dependen de la locale . Entonces, agregar, por ejemplo, export LC_ALL=en_US.UTF-8 a su archivo ~/.profile debería ser útil, pero tenga en cuenta que algunos progtwigs (principalmente oscuros) requieren una configuración regional estándar, por lo que si tiene problemas para ejecutar o comstackr un progtwig , intente volver a LC_ALL=C

Algunas referencias que pueden ser útiles:

Vaya a Terminal -> Preferences -> Advanced (Tab) vaya a International y seleccione Unicode (UTF-8) como Character Encoding .

Y marque Set locale environment variables on startup .

El siguiente es un resumen de lo que debe hacer bajo OS X Mavericks (10.9). Todo esto se resume en

http://hints.macworld.com/article.php?story=20060825071728278

  1. Vaya a Terminal-> Preferencias-> Configuración-> Avanzado.

    En Internacional , asegúrese de que la encoding de caracteres esté configurada en Unicode (UTF-8) .

    Además, y esta es la clave: en Emulación , asegúrese de que la entrada de escape no ASCII con Control-V esté desactivada (es decir, no esté configurada).

    Estas dos configuraciones arreglan cosas para Terminal.

  2. Asegúrese de que su configuración regional esté configurada para algo que termine en .UTF-8 . Escriba locale y mire la línea LC_CTYPE . Si no dice algo como en_US.UTF-8 (las cosas anteriores al punto podrían cambiar si está utilizando una configuración regional que no sea inglés de EE. UU.), En su Bash .profile o .bashrc en su directorio de inicio, agregue un línea como esta:

     export LC_CTYPE=en_US.UTF-8 

    Esto arreglará las cosas para los progtwigs de línea de comandos en general.

  3. Agregue las siguientes líneas a .inputrc en su directorio de inicio ( .inputrc si es necesario):

     set meta-flag on set input-meta on set output-meta on set convert-meta off 

    Esto hace que Bash sea de ocho bits limpio, por lo que pasará caracteres UTF-8 dentro y fuera sin jugar con ellos.

Tenga en cuenta que deberá reiniciar Bash (por ejemplo, cerrar y volver a abrir la ventana del terminal) para que preste atención a todas las configuraciones que realice en los puntos 2 y 3 anteriores.

Respuesta corta y versátil (se adapta a otros idiomas nacionales, incluso lituano o ruso)

  • Terminal abierto
  • editar .profile en home direkctory – nano .profile
  • agregar export LC_ALL=en_US.UTF-8 línea export LC_ALL=en_US.UTF-8
  • presione Ctrl + x e Y (salir y guardar)

Esto me solucionó incluso los caracteres nacionales raros de países pequeños. Es posible que deba cerrar y abrir la Terminal para hacer efectivos los cambios.

Además, si le gusta el comportamiento de Linux (use muchos métodos abreviados Alt como Alt +. O Alt +, en mc), debe desactivar la función de tecla de estilo Mac: Terminal-> Preferencias-> Perfiles-> Teclado y checkbox: Use Option as Meta key

Compruebe si el nano realmente se construyó con soporte UTF-8, utilizando nano --version . Aquí está en Cygwin:

 nano --version GNU nano version 2.2.5 (compiled 21:04:20, Nov 3 2010) (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. Email: nano@nano-editor.org Web: http://www.nano-editor.org/ Compiled options: --enable-color --enable-extra --enable-multibuffer --enable-nanorc --enable-utf8 

Tenga en cuenta el último bit.

Para hacer que nano funcione como lo desees, prueba:

 export LANG="UTF-8" 

O obtenga una versión más nueva de nano través de MacPorts :

 # cf. http://www.macports.org/install.php port info nano port variants nano sudo port install nano +utf8 +color +no_wrap 

Con respecto a los problemas de ssh y UTF-8, comente SendEnv LANG LC_* en /etc/ssh_config .

Ver: Terminal en OS X Lion: no se puede escribir åäö en la máquina remota

Mi terminal solo estaba actuando tontamente, no imprimiendo åäö. Encontré (y establecí) esta configuración: enter image description here

En Terminal -> Preferences... -> Profiles -> Advanced .

Parece que ha arreglado mi problema.

Dado que nano es una aplicación de terminal. Supongo que es más un problema terminal que un problema nano.

Encontré problemas similares en OS X (no puedo ingresar y ver los caracteres chinos en la terminal).

Traté de ajustar la configuración del sistema a través de la interfaz de usuario de OS X cuyo efecto real es cambiar la variable de entorno LANG.

Finalmente, agregué algunas cosas en ~ / .bashrc para solucionar el problema.

 # I'm Chinese and I prefer English manual export LC_COLLATE="zh_CN.UTF-8" export LC_CTYPE="zh_CN.UTF-8" export LC_MESSAGES="en_US.UTF-8" export LC_MONETARY="zh_CN.UTF-8" export LC_NUMERIC="zh_CN.UTF-8" export LC_TIME="zh_CN.UTF-8" 

Por cierto, no configure LC_ALL, que anulará todas las demás configuraciones LC_ *.

En mi caso, simplemente usando el comando uxterm lugar de xterm resolvió el problema. Está disponible en /opt/X11/bin/uxterm instalando el paquete XQuartz proporcionado por Apple.

… O simplemente deje el caparazón solo y use TextWrangler, que también le permite elegir la encoding y puede abrir desde / guardar directamente en su caja de Ubuntu a través de sftp.