GNU/Linux >> Tutoriels Linux >  >> Linux

Quelles sont les différences entre les fichiers Linux et Windows .txt (encodage Unicode)

"Unicode" sous Windows est UTF-16LE, et chaque caractère est de 2 ou 4 octets. Linux utilise UTF-8 et chaque caractère est compris entre 1 et 4 octets.

"Le minimum absolu que chaque développeur de logiciel doit absolument, positivement, connaître sur Unicode et les jeux de caractères (aucune excuse !)"


Sauts de ligne

Windows utilise CRLF (\r\n , 0D 0A ) les fins de ligne alors qu'Unix utilise juste LF (\n , 0A ).

Encodage des caractères

La plupart des systèmes de type Unix modernes (c'est-à-dire depuis 2004 environ) font d'UTF-8 l'encodage de caractères par défaut.

Windows, cependant, ne prend pas en charge nativement UTF-8. Il fonctionne en interne en UTF-16 et suppose que char Les chaînes basées sur sont dans une page de code héritée. Heureusement, le Bloc-notes est capable de lire les fichiers UTF-8; malheureusement, l'encodage "ANSI" est toujours la valeur par défaut.

Caractères spéciaux problématiques

U+001A SUBSTITUT

Windows utilise (rarement) Ctrl +Z comme caractère de fin de fichier. Par exemple, si vous type un fichier à l'invite de commande, il sera tronqué au premier 1A octet.

Sous Unix, Ctrl +Z n'a rien de spécial.

U+FEFF ZÉRO AVEC ESPACE SANS SÉCURITÉ (Marque d'ordre d'octet)

Sous Windows, les fichiers UTF-8 commencent souvent par une "marque d'ordre d'octet" EF BB BF pour les distinguer des fichiers ANSI.

Sous Linux, la nomenclature est déconseillée car elle casse des choses comme les lignes shebang dans les scripts shell. De plus, il serait inutile d'avoir une signature UTF-8 alors que UTF-8 est de toute façon l'encodage par défaut.


Une différence que j'ai entendue est l'utilisation de \r\n (Windows) par rapport à \n pour les sauts de ligne (Linux).

Oui. La plupart des éditeurs de texte UNIX gèrent cela automatiquement, les éditeurs de programmeurs Windows peuvent le faire, les éditeurs de texte généraux (le bloc-notes de base) ne le feront pas.

Windows semble également avoir besoin de l'EOF (Ctrl-Z) comme FIN DE FICHIER dans certains contextes, alors que vous ne le verrez probablement jamais sous UNIX.

N'oubliez pas que MacOS X est maintenant UNIX en dessous, il utilise donc les fins de ligne UNIX. Bien qu'avant OS X (MacOS 9 et inférieur), il avait sa propre fin (\r)

EDIT :dans un autre format CR et LF :

  • \n est ASCII 0x0A, saut de ligne (LF)
  • \r est ASCII 0x0D, retour chariot (CR)

Linux
  1. Quelle est la différence entre un conteneur Linux et une image ?

  2. Linux - Partager des fichiers entre l'hôte Linux et l'invité Windows ?

  3. Quels sont les appels OS/système natifs Windows et Linux effectués à partir de malloc() ?

  4. Quelles sont les différences entre les principales distributions Linux ? Vais-je remarquer ?

  5. Quelles sont les différences fonctionnelles entre .profile .bash_profile et .bashrc

Quelle est la différence entre les noyaux macOS et Linux

Quelle est la différence entre Linux et Unix ?

Installez Dropbox pour partager des fichiers entre Linux et Windows

Comment partager des fichiers de jeu Steam entre Linux et Windows

Quelles sont les différences entre cPanel et WHM ?

Partage de fichiers entre Linux Mint et Windows 10