Как Iconv обрабатывает порядок байтов?

Как Iconv обрабатывает порядок байтов?
echo hello | iconv -f ascii -t utf-16le | od -x

производит то, что мне кажется результатом с обратным порядком байтов

0068    0065    006c    006c    006f    000a

тогда как та же строка без leпроизводит, в системе utf16le (OS X)

echo hello | iconv -f ascii -t utf-16 | od -x

fffe    6800    6500    6c00    6c00    6f00    0a00

Меняется ли od -xпорядок байтов?

решение1

$ echo hello | iconv -f ascii -t utf-16le | hexdump -C
00000000  68 00 65 00 6c 00 6c 00  6f 00 0a 00              |h.e.l.l.o...|
$ echo hello | iconv -f ascii -t utf-16le | od -t x1
0000000 68 00 65 00 6c 00 6c 00 6f 00 0a 00

Вопрос в том, как 'od' обрабатывает порядок байтов. Когда вы просите его отобразитьединицы больше одного байта( -xотображает 16-битные слова), по умолчанию будет использоваться то, что является родным для системы, на которой он запущен.

Ваша macOS, вероятно, работает на процессоре Intel x86_64 с прямым порядком байтов, что означает, что байты {0x68, 0x00}действительно представляют собой 16-битное число 0x0068, когда они декодируются функцией «od».

Связанный контент