Saltar al contenido

¿Cuáles son las diferencias entre los archivos .txt de Linux y Windows (codificación Unicode)?

Solución:

“Unicode” en Windows es UTF-16LE y cada carácter tiene 2 o 4 bytes. Linux usa UTF-8 y cada carácter tiene entre 1 y 4 bytes.

“El mínimo absoluto que todo desarrollador de software debe conocer absoluta y positivamente sobre Unicode y conjuntos de caracteres (¡sin excusas!)”

Saltos de línea

Windows usa CRLF (rn, 0D 0A) finales de línea mientras que Unix solo usa LF (n, 0A).

Codificación de caracteres

La mayoría de los sistemas tipo Unix modernos (es decir, desde 2004 más o menos) hacen que UTF-8 sea la codificación de caracteres predeterminada.

Sin embargo, Windows carece de soporte nativo para UTF-8. Funciona internamente en UTF-16 y asume que char-Las cadenas de caracteres se encuentran en una página de códigos heredada. Afortunadamente, el Bloc de notas es capaz de leer archivos UTF-8; lamentablemente, la codificación “ANSI” es todavía el valor por defecto.

Caracteres especiales problemáticos

SUSTITUTO U + 001A

Windows (raramente) usa control+Z como carácter de fin de archivo. Por ejemplo, si tu type un archivo en el símbolo del sistema, se truncará en la primera 1A byte.

En Unix, control+Z no es nada especial.

U + FEFF CERO CON ESPACIO SIN ROTURA (Marca de orden de bytes)

En Windows, los archivos UTF-8 a menudo comienzan con una “marca de orden de bytes” EF BB BF para distinguirlos de los archivos ANSI.

En Linux, se desaconseja la lista de materiales porque rompe cosas como las líneas shebang en los scripts de shell. Además, no tendría sentido tener una firma UTF-8 cuando UTF-8 es la codificación predeterminada de todos modos.

Una diferencia que he escuchado es el uso de r n (Windows) frente a n para los saltos de línea (Linux).

Si. La mayoría de los editores de texto de UNIX manejarán esto automáticamente, los editores de programadores de Windows pueden manejar esto, los editores de texto generales (Bloc de notas básico) no lo harán.

Windows parece necesitar también el EOF (Ctrl-Z) como FIN DE ARCHIVO en algunos contextos, mientras que probablemente nunca lo verá en UNIX.

Recuerde que MacOS X ahora es UNIX debajo, por lo que usa finales de línea UNIX. Aunque antes de OS X (MacOS 9 y versiones posteriores) tenía su propio final ( r)

EDITAR: en otro formato CR y LF:

  • n es ASCII 0x0A, salto de línea (LF)
  • r es ASCII 0x0D, retorno de carro (CR)
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *