Pregunta

Estoy jugando con la utilidad hexdump UNIX. Mi archivo de entrada es codificación UTF-8, que contiene un solo ñ carácter, que es C3 B1 en hexadecimal UTF-8.

hexdump test.txt
0000000 b1c3
0000002

¿Eh? Esto demuestra B1 C3 - la inversa de lo que esperaba! ¿Puede alguien explicar?

Para conseguir el resultado esperado que hago:

hexdump -C test.txt
00000000  c3 b1                                             |..|
00000002

Estaba pensando entiendo sistemas de codificación ..

¿Fue útil?

Solución

Esto se debe a los valores predeterminados hexdump a la utilización de palabras de 16 bits y está ejecutando en una arquitectura ascendente hacia la izquierda. El b1 c3 secuencia de bytes se interpreta así como la palabra hex c3b1. Las fuerzas de opciones -C Hexdump trabajar con bytes en lugar de palabras.

Otros consejos

He encontrado dos maneras de evitar lo siguiente:

hexdump -C file

o

od -tx1 < file

Creo que es estúpido que hexdump decidió que los archivos son por lo general de 16 bits palabra little endian. Muy confuso OMI.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top