Le codage Unicode utilisé n'est pas basé sur le système d'exploitation.
Même Windows notepad.exe a des options répertoriées - (je mettrai entre crochets ce que le bloc-notes signifie par cela) ANSI (pas unicode), Unicode (le bloc-notes signifie Unicode LE), Unicode Big Endian (BE), UTF-8
ANSI n'est pas unicode, il implique un nombre très limité de caractères, alors mettons cela de côté.
Mais voyez même le bloc-notes peut faire LE, ou BE, ou UTF-8
Et le bloc-notes mis à part, l'UTF-8 peut être avec ou sans nomenclature.
Et j'utilise Windows avec Cygwin, bien que les ports Windows puissent bien faire \ r \ n même lorsque vous spécifiez \ n J'ai vu sed le faire.
Il n'y a pas de règle unique concernant le codage Unicode utilisé par un système d'exploitation particulier. Ce ne serait pas un système d'exploitation très flexible s'il y en avait un.
Pour vraiment voir les différences, connaissez le logiciel, ce que l'encodage utilise ou offre.
Obtenez Cygwin et xxd, et / ou un éditeur hexadécimal et regardez ce qui se trouve réellement dans le fichier. Utilisez la commande «fichier» pour identifier un fichier. Vous voyez alors ce qu'est l'UTF 16 bits LE. Qu'est-ce que l'UTF 16bit BE? Qu'est-ce que l'UTF-8 (et l'UTF-8 peut être avec ou sans nomenclature).
Parfois, vous pouvez dire au bloc-notes d'enregistrer en tant qu'unicode (par lequel le bloc-notes signifie unicode 16 bits petit endian), et il ne le fera pas. Mais choisissez une police unicode comme arial unicode, et copiez-y certains caractères unicode de charmap et ce sera le cas.
C:\asdf>notepad.exe a.a
C:\asdf>file a.a
a.a; Little-endian UTF-16 Unicode text, with no line terminators
C:\asdf>type a.a
aaa慡ൡ <-- though displayed aaa followed by some boxes in my cmd window
C:\asdf>
C:\asdf>xxd a.a
0000000: fffe 6100 6100 6100 6161 610d ..a.a.a.aaa.
C:\asdf>
^^ The portion of the byte that stores the 61 is the lower value portion which with LE is stored first.
La commande dd (une commande * nix que j'exécute à partir de cygwin dans Windows) peut la commuter
C:\asdf>xxd -p a.a
fffe6100610061006161610d
C:\asdf>file a.a
a.a; Little-endian UTF-16 Unicode text, with no line terminators
C:\asdf>dd if=a.a conv=swab of=a.a2
0+1 records in
0+1 records out
12 bytes (12 B) copied, 0 seconds, Infinity B/s
C:\asdf>type a.a2
a a a aaa
C:\asdf>xxd -p a.a2
feff00610061006161610d61
C:\asdf>file a.a2
a.a2; Big-endian UTF-16 Unicode text, with no line terminators
C:\asdf>
Et le bloc-notes lui-même peut enregistrer au format UTF-16 Big Endian ou UTF-16 Little Endian ou UTF-8
Si vous êtes un technicien ou même un simple utilisateur de bloc-notes, vous n'êtes pas lié à un seul encodage à cause de votre système d'exploitation!
Je suppose que UTF-8 est plus logique que UTF-16, UTF-16 utiliserait 16 bits même pour les caractères qui ne devraient avoir besoin que de 8 bits. Cependant, gardez à l'esprit que charmap affiche le code UTF-16.
Sublime (un éditeur de texte Windows) enregistre unicode au format UTF-8 par défaut.
J'utilise Windows et parfois unicode, et j'utilise principalement UTF-8.
Et comme Windows est techniquement flexible, linux est au moins aussi flexible techniquement!