الحالة 1: معيّنات � في ملف سليم
إذا عرض محرر أو مشغّل فيديو أو المتصفح � بدل كل الحروف العربية، فالملف غالبًا محفوظ بالترميز القديم Windows-1256، والبرنامج يقرؤه بترميز UTF-8. بايتات الحروف العربية غير صالحة في UTF-8، لذلك يضع البرنامج � عند العرض فقط. أما داخل الملف فالبايتات الصحيحة في مكانها. المزيد عن الترميزين: Windows-1256 وUTF-8.
الحل: اسحب الملف الأصلي إلى المربع أعلاه. يتعرف Mojibuster على الترميز أثناء القراءة ويحفظ الملف بترميز UTF-8. مهم: استخدم الملف نفسه لا نصًا منسوخًا من البرنامج، فعند النسخ تبقى � إلى الأبد.
الحالة 2: � أو ? مكتوبة داخل النص
إذا حفظ برنامج النص أو أرسله وفيه � بالفعل، فقد ضاعت الحروف الأصلية. وكذلك ?: تضعها البرامج عندما لا يوجد الحرف في الترميز المطلوب، مثل الحفظ بترميز ASCII أو الكتابة في عمود قاعدة بيانات لا يدعم العربية. عندها تصبح مرحبا هكذا: ?????.
لا يمكن استعادة هذه الحروف، فكلها صارت الرمز نفسه. لا يخمّن Mojibuster، بل يعرض عدد المواضع المتأثرة. الحل الوحيد هو المصدر: صدّر البيانات من جديد أو استخدم نسخة احتياطية.
من أين تأتي علامات الاستفهام؟
- قاعدة البيانات: عمود أو اتصال بترميز
latin1أوascii، والبيانات تصل بترميز UTF-8. عندها تحفظ MySQL????بدل العربية – انظر MySQL وphpMyAdmin. - موقع PHP قديم: الصفحة محفوظة بترميز Windows-1256، لكن الترميز غير مذكور في الترويسة أو في
<meta charset>. فيقرؤها المتصفح بترميز UTF-8 ويعرض�. وإذا فُتح الاتصال بقاعدة البيانات دون ترميز، تُكتب فيها?بدل الحروف. - المفكرة، «حفظ باسم» ← ANSI: في Windows الإنجليزي أو الفرنسي يكون ANSI ترميزًا غربيًا، فتُحفظ الحروف العربية
?. وفي Windows العربي يكون ANSI هو Windows-1256: تبقى العربية سليمة، لكن الرموز الأخرى (مثل الرموز التعبيرية) تصبح?. - برامج البريد القديمة: رسائل بترميز Windows-1256 دون تعريف صحيح للترميز تُفتح في برامج تتوقع UTF-8، فتظهر
�بدل النص. - PowerShell 5.1: يكتب
Export-Csvافتراضيًا بترميز ASCII ويستبدل الحروف العربية بـ?– انظر PowerShell. - Python: يستبدل
encode('ascii', errors='replace')الحروف بـ?دون أي تحذير – انظر Python وpandas. - موجه أوامر Windows: يعمل بترميز الطرفية (CP720 في Windows العربي) ويعرض الحروف غير المعروفة
?. غالبًا يفسد العرض فقط، لا الملف.
كيف تعرف حالتك؟
- افتح الملف في محرر يعرض الترميز، مثل Notepad++. إذا كُتب في شريط الحالة «ANSI» أو «Windows-1256» فهي الحالة 1.
- اسحب الملف إلى Mojibuster. إذا قُرئ بترميز Windows-1256 وعادت الحروف العربية، فهي الحالة 1 – انظر Windows-1256 وUTF-8.
- إذا أبلغ Mojibuster عن حروف مفقودة، فهي الحالة 2. عندها لا يفيد إلا تصدير جديد.
إذا ظهرت بدل علامات الاستفهام سلاسل مثل ظ…ط±طط¨ط§ أو Ù…Ø±ØØ¨Ø§، فهذا خطأ آخر يمكن إصلاحه في الغالب: ما هي الرموز الغريبة؟
أسئلة شائعة
هل يستطيع Mojibuster إعادة ? إلى حروف؟
لا. قد تعني ? أي حرف، والمعلومة ضاعت. لا يغيّر Mojibuster هذه المواضع، لكنه يعرض عددها.
لماذا تظهر � في برنامج ويظهر النص سليمًا في آخر؟
معنى ذلك أن الملف سليم، وأن أحد البرنامجين فقط يقرؤه بترميز خاطئ. احفظ الملف بترميز UTF-8 عبر Mojibuster، وسيعرضه البرنامجان بشكل صحيح.
ما هذا الرمز �؟
إنه رمز الاستبدال U+FFFD. تضعه البرامج عندما لا تستطيع قراءة بايت كحرف. وهو يدل على خطأ في الترميز، وليس جزءًا من النص نفسه.