Ahora cambio la codificación de caracteres de mi gnome-terminal a "GBK" (por defecto es UTF-8), pero ¿cómo puedo obtener el valor (codificación de caracteres) en mi Linux?Cómo obtener codificación de caracteres del terminal
Respuesta
El terminal utiliza environment variables para determinar qué character set de usar, por lo tanto, se puede determinar por mirar esas variables:
echo $LC_CTYPE
o
echo $LANG
Las aplicaciones que usan el terminal para E/S usan estas variables de entorno. El emulador de terminal en sí mismo no tiene conocimiento alguno de ellos, y su codificación de caracteres actualmente efectiva es una configuración en algún lugar dentro del programa emulador (un miembro de datos dentro de una clase libvte en el caso del Terminal GNOME). – JdeBP
el orden de las variables sugeridas aquí no es bueno. una solución más completa sería algo así como: echo $ {LC_ALL: - $ {LC_CTYPE: - $ {LANG}}}. una vez más, la variable que se está configurando no garantiza que sea válida, por lo que debe apegarse al programa 'locale' (como se ve en otras respuestas aquí). –
Como dijo @JdeBP, el terminal * no * usa las variables de entorno 'locale' para determinar su codificación. Sin embargo, el terminal puede permitir que las aplicaciones que lo interactúan conozcan su codificación estableciendo las variables de entorno 'locale'.Por ejemplo, en macOS puede elegir la codificación del terminal y opcionalmente establecer las variables de entorno 'locale' al inicio del terminal en' Terminal'> 'Preferences'>' Profiles'> 'Advanced'. – Maggyero
Comprobar codificación y el idioma:
$ echo $LC_CTYPE
ISO-8859-1
$ echo $LANG
pt_BR
Obtener todos los idiomas:
$ locale -a
Cambiar para pt_PT.utf8:
comando$ export LC_ALL=pt_PT.utf8
$ export LANG="$LC_ALL"
locale
sin argumentos imprimirá los valores de todas las variables de entorno correspondientes a excepción de idioma.
Para la codificación actual:
locale charmap
Para los locales disponibles:
locale -a
Para codificaciones disponibles:
locale -m
Que yo sepa, no.
Las indicaciones circunstanciales de $LC_CTYPE
, locale
y tales pueden parecer atractivas, pero están completamente separadas de la codificación que la aplicación de terminal (en realidad un emulador) usa cuando muestra caracteres en la pantalla.
La única forma de detectar la codificación es sacar algo solo presente en la codificación, p. ä
, tome una captura de pantalla, analice esa imagen y verifique si el carácter de salida es correcto.
Así que no, no es posible, por desgracia.
Si tiene Python:
python -c "import sys; print(sys.stdout.encoding)"
De todas las ofertas anteriores, la única sugerencia que funcionó en mi caja de Slackware64 v. 14.2 fue este fragmento de pitón. ¡Gracias! –
- 1. JSON codificación de caracteres
- 2. Codificación de caracteres JDBC
- 3. Obtener codificación de parámetros
- 4. Obtener el ancho del terminal en C?
- 5. Codificación de caracteres de textarea
- 6. jQuery AJAX Codificación de caracteres
- 7. GWT: codificación de caracteres diéresis
- 8. Codificación de caracteres del kit de herramientas de plantillas
- 9. ¿Cómo se obtiene la codificación del terminal dentro de un script python?
- 10. ¿Cómo puedo obtener la salida del terminal en python?
- 11. ¿Cómo obtener el tamaño del terminal en c para Windows?
- 12. Codificación de caracteres Javascript predeterminada?
- 13. Emacs: sistema de codificación del búfer actual
- 14. Algoritmo de detección de codificación de caracteres
- 15. Problemas de codificación de caracteres de PHPMailer
- 16. Codificación HTML para caracteres franceses
- 17. Obtener ancho de terminal Haskell
- 18. servlet request parámetro codificación de caracteres
- 19. Entidades de caracteres HTML y conjunto de codificación de caracteres
- 20. obtener la posición del cursor de la terminal
- 21. Codificación de caracteres predeterminada de Android
- 22. Caracteres de codificación de Python con urllib.quote
- 23. PowerShell codificación de caracteres de System.Net.WebClient
- 24. Problema de codificación de caracteres con PDO_ODBC
- 25. Hibernate Oracle y codificación de caracteres
- 26. Cadenas y codificación de caracteres en C++
- 27. C#, UTF-8 y caracteres de codificación
- 28. Manejo de caracteres especiales en C (codificación UTF-8)
- 29. Codificación de caracteres UTF-8 en Java
- 30. codificación de caracteres cambios después de window.open()
writeup corta: [Terminales Unix: Sobrevivir a la codificación Infierno] (http://benjamin-schweizer.de/unix-terminals-surviving-the-encoding-hell. html) – miku