سؤال
أنا ألعب مع Unix Hexdump Utility. ملف الإدخال الخاص بي هو UTF-8 مشفر ، يحتوي على حرف واحد ñ
, ، الذي C3 B1
في سداسي عشري UTF-8.
hexdump test.txt
0000000 b1c3
0000002
هاه؟ هذا يبين B1 C3
- عكس ما كنت أتوقعه! هل يمكن لأحد أن يشرح؟
للحصول على الإخراج المتوقع أفعل:
hexdump -C test.txt
00000000 c3 b1 |..|
00000002
كنت أفكر أنني أفهم أنظمة الترميز ..
المحلول
وذلك لأن hexdump الافتراضية لاستخدام كلمات 16 بت وأنت تعمل على بنية قليلة إنديان. تسلسل البايت b1 c3
وهكذا يتم تفسيرها على أنها كلمة سداسية c3b1
. ال -C
يختار الخيار Hexdump للعمل مع البايت بدلاً من الكلمات.
نصائح أخرى
لقد وجدت طريقتان لتجنب ذلك:
hexdump -C file
أو
od -tx1 < file
أعتقد أنه من الغباء أن Hexdump قررت أن الملفات عادة ما تكون 16bit كلمة صغيرة. مربكة جدا IMO.
لا تنتمي إلى StackOverflow