ما هو "= C2 = A0" في نص MIME المشفر ، مقتبس من طباعة؟
-
03-10-2019 - |
سؤال
هذا مثال على البريد الإلكتروني الخام الذي أحاول تحليله:
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 (ويكيبيديا).
لا تنتمي إلى StackOverflow