سؤال

هذا مثال على البريد الإلكتروني الخام الذي أحاول تحليله:

MIME-version: 1.0
Content-type: text/html; charset=UTF-8
Content-transfer-encoding: quoted-printable
X-Mailer: Verizon Webmail
X-Originating-IP: [x.x.x.x]

=C2=A0test testing testing 123

ما هو = C2 = A0؟ لقد جربت نصف دزينة من التحلات القابلة للطباعة ، لكن لا أحد يتعامل مع هذا بشكل صحيح. كيف يمكن للمرء تحليل هذا بشكل صحيح في C#؟

بصراحة ، في الوقت الحالي ، أنا أرمز:

//TODO WTF
encoded = encoded.Replace("=C2=A0", "");

لأنه لا يمكنني معرفة سبب وجود هذا النص بشكل عشوائي داخل محتوى MIME ، وليس من المفترض أن يتم تقديمه إلى أي شيء. بمجرد إزالته ، أحصل على التأثير المطلوب - ولكن لماذا؟!

لتوضيح ، أعرف أن (= [0-9a-f] {2}) هو حرف مشفر. لكن في هذه الحالة ، يبدو أنه لا يمثل شيئًا.

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

المحلول

"= C2 = A0" يمثل البايت C2 A0. ومع ذلك ، نظرًا لأن هذا هو UTF-8 ، فإنه يترجم إلى 00A0 ، وهو Unicode للمساحة غير الكارثة.

نرى UTF-8 (ويكيبيديا).

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