La codifica Unicode utilizzata non è basata sul sistema operativo.
Anche Windows Notepad.exe ha le opzioni elencate ((metterò tra parentesi ciò che significa Notepad) ANSI (non Unicode), Unicode (Notepad significa Unicode LE), Unicode Big Endian (BE), UTF-8
ANSI non è unicode ma comporta un numero molto limitato di caratteri, quindi lasciamo perdere.
Ma vedi anche il blocco note può fare LE, o BE o UTF-8
E a parte il blocco note, UTF-8 può essere con o senza una distinta base.
E io uso Windows con Cygwin anche se le porte di Windows potrebbero benissimo fare anche quando si specifica \ n Ho visto sed farlo.
Non esiste una regola per la codifica Unicode utilizzata da un determinato sistema operativo. Non sarebbe un sistema operativo molto flessibile se ci fosse.
Per vedere davvero le differenze, conosci il Software, cosa utilizza o offre la codifica di un software.
Ottieni Cygwin e xxd, e / o un editor esadecimale e guarda cosa c'è davvero nel file. Utilizzare il comando 'file' per aiutare a identificare un file. Quindi vedi effettivamente cos'è UTF 16bit LE. Che cos'è UTF 16bit BE. Che cos'è UTF-8 (e UTF-8 può essere con o senza una DBA).
A volte puoi dire al blocco note di salvare come unicode (con il quale blocco note significa unicode little endian a 16 bit), e non lo farà. Ma scegli un carattere unicode come arial unicode e copia alcuni caratteri unicode da charmap e lo farà. E un buon modo per vedere cosa sta facendo il blocco note o qualunque software, è guardare l'esagono di un file
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.
Il comando dd (un comando * nix che eseguo da Cygwin all'interno di Windows) può cambiarlo
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>
E il blocco note stesso può essere salvato come UTF-16 Big Endian o UTF-16 Little Endian o UTF-8
Se sei un tecnico o anche solo un utente di blocco note, non sei vincolato a una codifica a causa del tuo sistema operativo!
Suppongo che UTF-8 abbia più senso di UTF-16, UTF-16 userebbe 16 bit anche per caratteri che dovrebbero avere bisogno solo di 8 bit. Inoltre, tieni presente che charmap mostra il codice UTF-16.
Sublime (un editor di testo di Windows) salva unicode come UTF-8 per impostazione predefinita.
Uso Windows e talvolta Unicode, e sto usando principalmente UTF-8.
E poiché Windows è tecnicamente flessibile, Linux è almeno altrettanto tecnicamente flessibile!