• 0

كيف أحل مشكلة تسلسل بايت غير صالح في UTF-8 في روبي؟

أثناء تجربتي لبرنامج أقوم ببرمجته لاستخراج معلومات من مواقع الويب (روابط، نماذج..) أحصل على أخطاء عديدة من نوع invalid byte sequence in UTF-8 فما هو هذا الخطأ؟ وكيف أستطيع حل هذه المشكلة؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

عندما تتعامل مع نصوص بترميز UTF-8  من مصادر غير موثوقة مثل نماذج الويب، فإنه من الجيد أن تقوم بإصلاح أي تسلسل من البايتات غير الصحيحة حتى تتجنب كسر خطوات المعالجة التي تعتمد على المدخلات الصالحة، لذلك في مثل هذه الحالة، يُنصح بأن يتم باستخدام UTF-8//IGNORE والتي تُخبر مفسر روبي بأن يتجاهل البايتات التي لا يمكن تحويلها كما في المثال التالي:

ic = Iconv.new('UTF-8//IGNORE', 'UTF-8')
valid_string = ic.iconv(untrusted_string)

حيث ستستبدل  untrusted_string بالسلسلة النصية التي حصلت عليها من مصدر غير موثوق.
المصدر

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن