ฉันมีซ็อกเก็ตเซิร์ฟเวอร์ที่ควรจะได้รับอักขระที่ถูกต้อง UTF-8 จากลูกค้า
ปัญหาคือลูกค้าบางราย (ส่วนใหญ่แฮกเกอร์) กำลังส่งข้อมูลผิดประเภททั้งหมด
ฉันสามารถแยกความแตกต่างไคลเอนต์ของแท้ได้อย่างง่ายดาย แต่ฉันเข้าสู่ไฟล์ข้อมูลทั้งหมดที่ส่งเพื่อให้ฉันสามารถวิเคราะห์ได้ในภายหลัง
บางครั้งฉันได้รับตัวละครเช่นนี้œ
ทำให้เกิดUnicodeDecodeError
ข้อผิดพลาด
ฉันต้องสามารถสร้างสตริง UTF-8 โดยมีหรือไม่มีอักขระเหล่านั้น
ปรับปรุง:
สำหรับกรณีของฉันบริการซ็อกเก็ตเป็น MTA และฉันคาดหวังว่าจะได้รับคำสั่ง ASCII เช่น:
EHLO example.com
MAIL FROM: <john.doe@example.com>
...
ฉันบันทึกทั้งหมดนี้ใน JSON
จากนั้นบางคนก็ออกไปที่นั่นโดยไม่มีเจตนาดีตัดสินใจขายขยะทุกชนิด
นั่นเป็นเหตุผลสำหรับกรณีเฉพาะของฉันมันเป็นเรื่องที่ดีที่จะตัดอักขระที่ไม่ใช่ ASCII ออก