
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 le
produce, en un sistema utf16le (OS X)
echo hello | iconv -f ascii -t utf-16 | od -x
fffe 6800 6500 6c00 6c00 6f00 0a00
¿ od -x
Cambia 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( -x
muestra 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 0x0068
cuando se decodifican con 'od'.