علامات استفهام بدل العربية: ماذا تعني ? و �؟

تظهر في النص علامات ? أو معيّنات � بدل الحروف العربية؟ تتشابه في الشكل لكن أسبابها مختلفة. كثيرًا ما يكون الملف نفسه سليمًا، وأحيانًا تكون الحروف قد ضاعت فعلًا. إليك كيف تعرف حالتك.

يعمل مع النصوص وهذه الملفات:

  • CSV
  • TXT
  • JSON
  • XML
  • SRT
  • VTT
  • SMI
  • TSV
  • MD
  • HTML
  • SQL
  • LOG

مثل ملفات Excel المصدّرة ونسخ قواعد البيانات والترجمات وشيفرة المواقع.

إصلاح

  1. اسحب ملفًا أو الصق نصًا
  2. يتم الإصلاح تلقائيًا
  3. انسخ النتيجة أو نزّلها
أو اسحب الملف إلى هنا
  • دون رفع. تُصلح الملفات داخل متصفحك مباشرة ولا تغادر جهازك أبدًا.

  • خوادم في الاتحاد الأوروبي. يعمل Mojibuster على خادم في فنلندا (الاتحاد الأوروبي)، لذلك تسري اللائحة العامة لحماية البيانات (GDPR). نص اللائحة (EUR-Lex، بالإنجليزية)

الحالة 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 العربي) ويعرض الحروف غير المعروفة ?. غالبًا يفسد العرض فقط، لا الملف.

كيف تعرف حالتك؟

  1. افتح الملف في محرر يعرض الترميز، مثل Notepad++. إذا كُتب في شريط الحالة «ANSI» أو «Windows-1256» فهي الحالة 1.
  2. اسحب الملف إلى Mojibuster. إذا قُرئ بترميز Windows-1256 وعادت الحروف العربية، فهي الحالة 1 – انظر Windows-1256 وUTF-8.
  3. إذا أبلغ Mojibuster عن حروف مفقودة، فهي الحالة 2. عندها لا يفيد إلا تصدير جديد.

إذا ظهرت بدل علامات الاستفهام سلاسل مثل ظ…ط±ط­ط¨ط§ أو مرحبا، فهذا خطأ آخر يمكن إصلاحه في الغالب: ما هي الرموز الغريبة؟

أسئلة شائعة

هل يستطيع Mojibuster إعادة ? إلى حروف؟

لا. قد تعني ? أي حرف، والمعلومة ضاعت. لا يغيّر Mojibuster هذه المواضع، لكنه يعرض عددها.

لماذا تظهر � في برنامج ويظهر النص سليمًا في آخر؟

معنى ذلك أن الملف سليم، وأن أحد البرنامجين فقط يقرؤه بترميز خاطئ. احفظ الملف بترميز UTF-8 عبر Mojibuster، وسيعرضه البرنامجان بشكل صحيح.

ما هذا الرمز �؟

إنه رمز الاستبدال U+FFFD. تضعه البرامج عندما لا تستطيع قراءة بايت كحرف. وهو يدل على خطأ في الترميز، وليس جزءًا من النص نفسه.

أدلة أخرى