Die verwendete Unicode-Codierung basiert nicht auf dem Betriebssystem.
Sogar in Windows notepad.exe sind Optionen aufgeführt - (ich werde in Klammern setzen, was Notepad damit bedeutet) ANSI (nicht Unicode), Unicode (Notepad bedeutet Unicode LE), Unicode Big Endian (BE), UTF-8
ANSI ist kein Unicode, es enthält nur eine sehr begrenzte Anzahl von Zeichen.
Aber auch Notizblock kann LE, BE oder UTF-8
Abgesehen vom Notizblock kann UTF-8 mit oder ohne Stückliste sein.
Und ich verwende Windows mit Cygwin, obwohl Windows-Ports möglicherweise \ r \ n auch dann funktionieren, wenn Sie Folgendes angeben \ n Habe gesehen, dass sed dies tut.
Es gibt keine einzige Regel, welche Unicode-Codierung ein bestimmtes Betriebssystem verwendet. Es wäre kein sehr flexibles Betriebssystem, wenn es eines gäbe.
Um die Unterschiede wirklich erkennen zu können, muss die Software wissen, welche Codierung eine Software verwendet oder anbietet.
Holen Sie sich Cygwin und xxd und / oder einen Hex-Editor und schauen Sie sich an, was wirklich in der Datei enthalten ist. Verwenden Sie den Befehl 'file', um eine Datei zu identifizieren. Dann sehen Sie tatsächlich, was UTF 16bit LE ist. Was ist UTF 16bit BE? Was UTF-8 ist (und UTF-8 kann mit oder ohne Stückliste sein).
Manchmal kann man notepad anweisen, als Unicode zu speichern (wobei notepad 16-Bit-Little-Endian-Unicode bedeutet), was aber nicht der Fall ist. Wählen Sie jedoch eine Unicode-Schriftart wie arial Unicode und kopieren Sie einige Unicode-Zeichen aus charmap. Sie können auch anhand des Hexadezimalwerts einer Datei feststellen, was für ein Editor oder welche Software gerade ausgeführt wird
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.
Der Befehl dd (ein * nix-Befehl, den ich in cygwin unter Windows ausführe) kann ihn umschalten
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>
Und Notizblock selbst kann als UTF-16 Big Endian oder UTF-16 Little Endian oder UTF-8 speichern
Wenn Sie eine technische Person oder nur ein Editor-Benutzer sind, sind Sie aufgrund Ihres Betriebssystems nicht an eine Codierung gebunden!
Ich nehme an, UTF-8 ist sinnvoller als UTF-16. UTF-16 würde 16 Bit auch für Zeichen verwenden, die nur 8 Bit benötigen sollten. Beachten Sie jedoch, dass charmap den UTF-16-Code anzeigt.
Sublime (Ein Windows-Texteditor) speichert Unicode standardmäßig als UTF-8.
Ich benutze Windows und manchmal Unicode, und ich verwende meistens UTF-8.
Und da Windows technisch so flexibel ist, ist Linux mindestens so technisch flexibel!