سؤال

أنا ألعب مع 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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top