A codificação Unicode usada não é baseada no sistema operacional.
Até o notepad.exe do Windows tem opções listadas - (colocarei entre colchetes o que o bloco de notas significa com isso) ANSI (não unicode), Unicode (bloco de notas significa Unicode LE), Unicode Big Endian (BE), UTF-8
ANSI não é unicode, envolve um número muito limitado de caracteres, então vamos deixar isso de lado.
Mas veja até o bloco de notas pode fazer LE, ou BE, ou UTF-8
E, além do bloco de notas, o UTF-8 pode ser com ou sem uma lista técnica.
E eu uso o Windows com Cygwin, embora as portas do Windows funcionem \ r \ n mesmo quando você especificar \ n Já viu sed fazer isso.
Não há uma regra sobre qual codificação Unicode usa um sistema operacional específico. Não seria um sistema operacional muito flexível se houvesse.
Para realmente ver as diferenças, conheça o Software, que codificação um pedaço de software usa ou oferece.
Obtenha o Cygwin e o xxd e / ou um editor hexadecimal e veja o que realmente está dentro do arquivo. Use o comando 'arquivo' para ajudar a identificar um arquivo. Então você realmente vê o que é UTF 16bit LE. O que é UTF 16bit BE. O que é UTF-8 (e UTF-8 pode ser com ou sem uma BOM).
Às vezes, você pode dizer ao bloco de notas para salvar como unicode (o que significa que o bloco de notas significa unicode endian pouco de 16 bits), e não será. Mas escolha uma fonte unicode como arial unicode e copie alguns caracteres unicode do charmap e assim será. E uma boa maneira de ver o que o bloco de notas ou qualquer outro software está fazendo é observando o hexadecimal de um arquivo
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.
O comando dd (um comando * nix que eu corro do cygwin no windows) pode alterná-lo
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 o próprio bloco de notas pode salvar como UTF-16 Big Endian ou UTF-16 Little Endian ou UTF-8
Se você é um técnico ou apenas um usuário de bloco de notas, não está vinculado a uma codificação por causa do seu sistema operacional!
Suponho que UTF-8 faça mais sentido do que UTF-16, o UTF-16 usaria 16 bits, mesmo para caracteres que precisam apenas de 8 bits. Além disso, lembre-se de que o charmap mostra o código UTF-16.
Sublime (um editor de texto do Windows) salva o Unicode como UTF-8 por padrão.
Eu uso o Windows e, às vezes, unicode, e estou usando UTF-8 principalmente.
E como o Windows é tecnicamente flexível, o linux é pelo menos tecnicamente flexível!