تجاهل Saxparser علامة ترتيب البايت
-
27-09-2019 - |
سؤال
لا يتجاهل Saxparser الخاص بنا علامة ترتيب البايت 
الذي يظهر عند بداية الملف.
كيف أحصل على محلل ساكس لتجاهل علامة ترتيب البايت؟
المحلول
يبدو أنك قد تعطي مدخلات UTF-16 إلى saxparser والتي لا تتوقع UTF-16. حاول تحويل البيانات إلى UTF-8 ، وقد يساعد ذلك.
نصائح أخرى
تحقق من الملف في محرر Hex.
إذا كانت البايتات الأولية بالفعل \xEF\xBB\xBF
تليها المستند نفسه ، فهو utf-8 faux-bom. على الرغم من أن UTF-8 FAUX-BOMS هي خطأ خاطئ وأدوات تولدها تحتاج إلى تدميرها بحمض البرمجة الخاصة ، إلا أن مواصفات XML تفعل يتطلب المحللون للاعتراف وتجاهل تسلسل البايت هذا ، لذلك إذا لم يكن محلل ساكس الخاص بك غير متوافق ويحتاج إلى بعض الركل.
إذا كانت البايتات الأولية التي تمنحك 
في الواقع شيء مثل واحد من:
\xC3\xAF\xC2\xBB\xC2\xBF
\xEF\xBB\xBF\xC3\xAF\xC2\xBB\xC2\xBF
\xEF\x00\xBB\x00\xBF\x00
\xFF\xFE\xEF\x00\xBB\x00\xBF\x00
ثم ما لديك هو ترميز مزدوج عرضي. في هذه الحالة ، تحتاج إلى إلقاء نظرة على البرنامج الذي ينتج الملف لأنه لم يتم تشكيله جيدًا ، سيكون محلل ساكس صحيحًا للشكوى ، ومن المحتمل أن يتم إفساد أحرف Unicode الأخرى في الملف أيضًا. من المحتمل أن تفعل شيئًا سخيفًا مثل تسلسل المستند إلى سلسلة بايت ثم إرساله من خلال دورة فك [فك الشفرة/التشفير.
في كلتا الحالتين ، إذا كنت بحاجة إلى تخطي المحلل المليء بتسلسل البايت المزعج ، فسيتعين عليك إطعامه بإصدار تم اختراقه يدويًا لإزالة هذه البادئة. دون معرفة ما هو ساكس محلل (أو حتى ما هي اللغة) ، من الصعب تحديد كيفية القيام بذلك.
ربما يمكنك البحث عن دفق الإدخال قبل نقله إلى المحلل؟ ربما يمكنك قراءة الملف في سلسلة بايت وتمرير ذلك ، شرق البايتات الأولية ، إلى المحلل؟ إذا لم يمنحك المحللون الخاص بك تلك الخيارات ، فسيتعين عليك تحميل الملف كبدادة ، وقم بقص البداية وحفظه مرة أخرى إلى ملف جديد.