لماذا يقوم النص الثنائي بالأنابيب على الشاشة في كثير من الأحيان

StackOverflow https://stackoverflow.com/questions/2624554

  •  26-09-2019
  •  | 
  •  

سؤال

الوضع الخيالي: لقد استخدمت MySQLDump لإنشاء نسخة احتياطية لقاعدة بيانات MySQL. تحتوي قاعدة البيانات هذه على أعمدة. هذا يعني أن ملفات التفريغ "النصية" تحتوي على كل من السلاسل والبيانات الثنائية (البيانات الثنائية المخزنة كسلاسل؟)

إذا قمت بمسح هذا الملف على الشاشة

$ cat dump.mysql

ستحصل غالبًا على نتائج غير متوقعة. ستبدأ المحطة الصفراء ، ثم ينتهي الإخراج من التمرير من خلال ، فغالبًا ما يتم إدخال أدوات القمامة على المحطة الخاصة بك كما كتبت من خلالك ، وأحيانًا تكون مطالبك وأي شيء تكتبه سيكون أحرفًا للقمامة.

لماذا يحدث هذا؟ بعبارة أخرى ، أعتقد أنني أبحث عن نظرة عامة على ما يحدث فعليًا عند تخزين الأوتار الثنائية في ملف ، وعندما تقوم بتسجيل هذه الملفات ، وعندما يتم إبلاغ نتائج القط إلى المحطة ، وأي خطوات أخرى أنا مفقود.

هل كانت مفيدة؟

المحلول

أبدأ هنا: http://www.faqs.org/docs/linux-howto/keyboard-and-console-howto.html

على وجه الخصوص ، الأقسام 3 (عمومية وحدة التحكم) والمادة 4 (إعادة ضبط المحطة الخاصة بك).

إنه يغطي أكثر قليلاً مما تتحدث عنه ، ولكن يجب أن يعطيك ما تحتاجه.

نصائح أخرى

عندما تقوم بتوصيل ملف ثنائي يمكنك عن غير قصد أرسل أحرف التحكم إلى المحطة.

إذا أراد تطبيق الطرفية إرسال صوت على سبيل المثال ، فإنه يرسل الثنائي التالي إلى المحطة: 0x007 (Sys V فقط).

وينطبق الشيء نفسه على الألوان وموقف المؤشر وغيرها.

عندما تقوم بتسجيل البيانات الثنائية على الشاشة ، تحاول المحطة تفسير تلك البيانات الثنائية في ASCII (أو UTF). بعض الشخصيات قادرة على التحكم في المحطة. علي سبيل المثال،

echo "^[[0;31;40m" # The first ^[ comes from pressing Ctrl+v, Esc

سوف تحول الخلفية باللون الأسود والأحمر المقدمة. يستخدم reset لإرجاع المحطة الخاصة بك إلى طبيعتها.

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