Question

Je joue avec l'utilitaire hexdump unix. Mon fichier d'entrée est codé UTF-8, contenant un seul caractère ñ, qui est C3 B1 en UTF-8 hexadécimal.

hexdump test.txt
0000000 b1c3
0000002

Huh? Cela montre B1 C3 - l'inverse de ce que je pensais! Quelqu'un peut-il expliquer?

Pour obtenir le résultat attendu que je fais:

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

Je pensais que je comprends coder les systèmes ..

Était-ce utile?

La solution

En effet, par défaut hexdump à l'aide de mots de 16 bits et que vous exécutez sur une architecture little-endian. La séquence d'octets b1 c3 est donc interprétée comme le mot hexadécimal c3b1. Les forces de l'option de -C HexDump au travail avec des octets au lieu de mots.

Autres conseils

J'ai trouvé deux façons d'éviter que:

hexdump -C file

ou

od -tx1 < file

Je pense qu'il est stupide que hexdump a décidé que les fichiers sont généralement 16bit mot little endian. Très confondant l'OMI.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top