سؤال

عند محاولة عرض دفق بايت من HLDS (خادم نصف العمر المخصص) في مربع نص، فإنه يعرض أحرف علامة استفهام ممتلئة غريبة تبدو كما يلي:

[?]

فيما يلي نموذج سطر من دفق البايت (مع [؟] بدلاً من الحرف الغريب):

CPU   In    Out   Uptime  Users   FPS    Players[?] 0.00  0.97  0.91    2806   182  297.25       1[?]

إليك كيفية عرض دفق البايت كسلسلة:

byte[] bytes = listener.Receive(ref sender); // get bytes from stream
TextBox1.Text = Encoding.ASCII.GetString(bytes, 0, bytes.Length); // write to textbox

الشخصيات تظهر حيث [CR][LF] يجب أن تظهر بشكل طبيعي.لماذا تظهر أحرف غريبة، وماذا يمكنني أن أفعل لإزالة الأحرف الغريبة أو تصحيح الترميز؟

***** UPDATE *****

قدم جون سكيت الإجابة الصحيحة.تُرجع السجلات للسطر الجديد (وليس ) و\0 في نهاية كل سطر سجل متدفق.تم استبدال بـ Environment.NewLine و\0 بـ string.Empty وستختفي الأحرف الغريبة.شكرا لك جون.

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

المحلول

أولا، وأعتقد أنه إذا مربعات النص يحصل من أي وقت مضى شخصية 0، وسوف نفترض أن هذا هو نهاية البيانات - قد ترغب في حماية ضد هذا تحديدا

.

من أين يأتي تيار بايت بك من؟ ما الترميز هو عليه <م> يعني أن تكون؟ ما هي بايت عند هذه النقطة في البيانات؟

نصائح أخرى

  1. هل أنت متأكد من أن البيانات موجودة بصيغة ASCII خالصة؟هل ربما يكون موجودًا في إحدى صفحات الرموز العديدة؟
  2. هل ربما يكون ذلك بسبب [CR] مقابل [LF] مقابل [CR] [LF]؟
  3. هل يمكنك معرفة استخدام وحدات البايت الموجودة حول "اللاعبين..."؟وماذا تتوقع أن ترى؟نحن قد تكون قادرة على التعرف على صفحة التعليمات البرمجية

من المفترض أن يكون البايت إما في منطقة مخطط الشفرة (128-255)، أو أحرف التحكم (0-31).

scroll top