какая кодировка Unicode используется не на основе ОС.
даже блокнот Windows.exe имеет перечисленные параметры - (я поставлю в скобках, что означает Блокнот)
Стандарт ANSI(не Unicode), Юникод(Блокнот означает Юникод ЛЕ), с обратным порядком байтов Юникода(быть), в UTF-8
ANSI не является unicode, он включает в себя очень ограниченное количество символов, поэтому давайте отложим это.
но смотри даже блокнот может сделать LE, или BE, или UTF-8
и блокнот в сторону, UTF-8 может быть с или без ВЕДОМОСТЬ МАТЕРИАЛОВ.
и я использую Windows с Cygwin, хотя порты Windows вполне могут делать \r\n, даже если вы укажете \n, видели, что sed это делает.
существует одно правило, что в кодировке Юникод конкретной ОС. Это была бы не очень гибкая ОС, если бы она была.
чтобы действительно увидеть различия знать программное обеспечение, что кодирование кусок программного обеспечения использует или предлагает.
получить Cygwin и xxd, и / или шестнадцатеричный редактор и посмотреть, что на самом деле внутри файла. Используйте команда 'file' помогает идентифицировать файл. Тогда вы действительно видите, что такое UTF 16bit LE. Что UTF 16bit быть. Что такое UTF-8 (и UTF-8 может быть с или без BOM).
иногда вы можете сказать Блокноту сохранить как unicode(под которым Блокнот означает 16 бит unicode little endian), и он не будет. Но выберите шрифт unicode, такой как arial unicode, и скопируйте некоторые символы unicode из charmap, и это будет.. И хороший способ увидеть, что делает блокнот или любое другое программное обеспечение, - это посмотреть на hex файла
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 (команда *nix, которую я запускаю из cygwin в windows) может переключить ее
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>
и сам Блокнот может сохранить как UTF-16 Big Endian или UTF-16 Little Endian или UTF-8
Если вы технический человек или даже просто пользователь Блокнота, вы не привязаны к одной кодировке из-за своей ОС!
Я полагаю, что UTF-8 имеет больше смысла, чем UTF-16, UTF-16 будет использовать 16 бит даже для символов для этого нужно всего 8 бит. Кроме того, имейте в виду, что charmap показывает код UTF-16.
Sublime (текстовый редактор windows) сохраняет Юникод как UTF-8 по умолчанию.
Я использую Windows, а иногда и unicode, и я использую UTF-8 в основном.
и поскольку Windows технически гибка, linux, по крайней мере, технически гибок!