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 ..
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.