¿Cuál es la codificación de caracteres predeterminada?

8

No sé cuán profunda es realmente esta pregunta (por ejemplo, por lo que sé, podría haber varias, dependiendo de mi tarea).

Particularmente, estoy interesado en qué tipos de cadenas se usan para nombrar archivos y carpetas en el sistema.

También estoy interesado en cómo se representan las cadenas por defecto para un script bash o python.

gabkdlly
fuente
Esa es una buena pregunta, especialmente si se convirtió desde Windows y contribuye con el código fuente a algún sistema de control de versiones. Después de cambiar a Ubuntu, de repente puede experimentar caracteres especiales ilegibles, porque Windows generalmente no usa UTF-8.
Bananeweizen

Respuestas:

3
  • La codificación de nombres de archivo en el sistema de archivos es utf-8.
  • Bash piensa en bytes, no con cadenas de conocimiento de codificación. Entonces no hay codificación predeterminada. La codificación predeterminada de gnome-terminal es utf-8
  • La codificación predeterminada de Python es ascii
Dennis Kaarsemaker
fuente
Python 3 (¿creo?) Está cambiando a cadenas unicode por defecto.
Broam
El tipo str () de Python 3 es un objeto unicode en codificación UCS-2 o UCS-4 internamente. El desarrollador de la aplicación / biblioteca determinará cómo se leen o escriben los datos de, por ejemplo, archivos y stdin, con utf-8 como estándar (por ejemplo, print (some_str) imprimirá una representación de utf-8).
Dennis Kaarsemaker
Python 3 se convertirá en unicode como Ruby 1.9 Python 2 y menos, como Ruby 1.8 y menos, están basados ​​en ascii y funcionan con todos los conjuntos de caracteres, pero su idea sobre el recuento de caracteres para cadenas unicode es incorrecta. (que generalmente no es un problema)
Ralf
3
gnome-terminal no tiene por defecto utf-8; solo usa cualquier configuración regional. (Como he descubierto la manera dura poco.)
frabjous
1
@DennisKaarsemaker No, Python3 no deja la codificación solo al desarrollador y utiliza un valor predeterminado de UTF-8. Stdin y -out, por ejemplo, usan la codificación del entorno de forma predeterminada.
Robert Siemer
7

La codificación de caracteres predeterminada es UTF-8 (Unicode), aunque casi todos los nombres de archivo (posiblemente todos en una instalación predeterminada) son caracteres ASCII normales, comunes a la mayoría de las codificaciones.

No sé qué quieres decir con "cuántas cadenas están representadas por un script bash o python". Puede usar caracteres Unicode en scripts de bash en Ubuntu, pero generalmente con un script de bash, llama a otros programas, y si esos otros programas los manejarán es otra cuestión. Ciertamente, también es posible hacerlo con Python, aunque querrá familiarizarse con los paquetes y la configuración relacionados con ellos.

precioso
fuente