¿Cómo maneja Iconv la endianidad?

¿Cómo maneja Iconv la endianidad?
echo hello | iconv -f ascii -t utf-16le | od -x

produce lo que me parece un resultado big-endian

0068    0065    006c    006c    006f    000a

mientras que la misma línea sin leproduce, en un sistema utf16le (OS X)

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

fffe    6800    6500    6c00    6c00    6f00    0a00

¿ od -xCambia la endianidad?

Respuesta1

$ 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

La pregunta es cómo maneja 'od' el endianismo. Cuando le pides que se muestreunidades mayores que un solo byte( -xmuestra palabras de 16 bits), de forma predeterminada utilizará lo que sea nativo para el sistema en el que se está ejecutando.

Es probable que su macOS se esté ejecutando en una CPU Intel x86_64 que es little-endian, lo que significa que los bytes {0x68, 0x00}representan el número de 16 bits 0x0068cuando se decodifican con 'od'.

información relacionada