Unicode kodlamasının kullanıldığı işletim sistemi tabanlı değildir.
Windows notepad.exe bile listelenen seçeneklere sahiptir.
ANSI unicode değil çok sınırlı sayıda karakter içerir, bu yüzden bunu bir kenara bırakalım.
Ancak not defteri bile LE, BE veya UTF-8 yapabilir
Ve not defteri bir yana, UTF-8 bir Malzeme Listesi ile veya olmadan olabilir.
Ve Cygwin ile Windows'u kullanıyorum, ancak Windows bağlantı noktaları \ r \ n belirttiğinizde bile bunu yapabilir \ n \ Bunu gördük.
Belirli bir işletim sisteminin kodladığı Unicode'un kullandığı tek bir kural yoktur. Olsaydı çok esnek bir işletim sistemi olmazdı.
Farklılıkları gerçekten görmek için, yazılımın bir kodlama kodunun kullandığı veya sunduğu şeyleri bilir.
Cygwin ve xxd ve / veya onaltılık bir düzenleyici edinin ve dosyanın içinde gerçekten ne olduğuna bakın. Bir dosyayı tanımlamaya yardımcı olması için 'dosya' komutunu kullanın. O zaman aslında UTF 16bit LE'nin ne olduğunu görüyorsunuz. UTF 16bit BE nedir. UTF-8 nedir (ve UTF-8 bir Malzeme Listesi ile veya bir Malzeme Listesi olmadan olabilir).
Bazen not defterine unicode olarak kaydetmesini söyleyebilirsiniz (bu not defteri unicode 16 bit küçük endian anlamına gelir) ve olmayacaktır. Ama arial unicode gibi bir unicode yazı tipi seçin ve charmap bazı unicode karakterleri kopyalayın ve olacak .. Ve ne not defteri veya ne yazılım ne yaptığını görmek için iyi bir yol, bir dosyanın onaltılık bakarak
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.
Dd komutu (windows içindeki cygwin'den çalıştırdığım * nix komutu) değiştirebilir
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>
Ve not defteri kendisi UTF-16 Big Endian veya UTF-16 Little Endian veya UTF-8 olarak kaydedebilir
Teknik bir kişiyseniz ya da sadece bir not defteri kullanıcısıysanız, işletim sisteminiz nedeniyle bir kodlamaya bağlı değilsiniz!
UTF-8'in UTF-16'dan daha mantıklı olduğunu düşünüyorum, UTF-16 sadece 8 bit'e ihtiyaç duyan karakterler için bile 16 bit kullanacaktır. Yine de, charmap'in UTF-16 kodunu gösterdiğini unutmayın.
Sublime (Windows metin düzenleyicisi), unicode'u varsayılan olarak UTF-8 olarak kaydeder.
Windows ve bazen unicode kullanıyorum ve çoğunlukla UTF-8 kullanıyorum.
Ve Windows teknik olarak esnek olduğu için, linux en azından teknik olarak esnektir!