لماذا يظهر الملف النصي حروفًا مشوّهة
تفتح ملف .txt فتجد العربية قد تحوّلت إلى رموز لا معنى لها. الملف ليس تالفًا؛ البايتات كلها في موضعها، لكنها تُقرأ بجدول خاطئ.
ما الذي يحدث فعلًا
الملف النصي يحتوي بايتات، ولا يقول شيئًا عمّا تعنيه. أن يكون بايت ما حرف «ع» أو شيئًا آخر يتوقف على الترميز الذي كُتب به الملف، وهذه المعلومة غير مسجّلة داخله في أي موضع.
لذلك يقوم كل برنامج بـالتخمين. إن أصاب قرأت الكتاب، وإن أخطأ رأيت الرموز.
الترميزات التي تعني العربية
| الترميز | من أين يأتي |
|---|---|
| Windows-1256 (CP1256) | الترميز الافتراضي لويندوز العربي، وأغلب الملفات بين 1995 و2010 |
| ISO-8859-6 | أقدم، ويظهر في أرشيفات يونكس والويب المبكر |
| UTF-8 | المعيار الحالي، ويغطي كل الكتابات |
الحروف العربية لا تتقاطع مع نطاق ASCII، ولذلك يشوّه الترميز الخاطئ النص كله لا بعضه. هذا مزعج في القراءة لكنه أفضل في الاكتشاف: لن تصل إلى الفصل الثالث قبل أن تنتبه، كما يحدث في التركية أو الألمانية حيث تتلف حروف معدودة فقط.
ماذا يفعل التطبيق
الأوضح أن نقولها صراحةً: يجرّب Aurora Reader ترميز UTF-8 أولًا، فإن فشل عاد إلى Latin-1. وهو لا يتعرّف على Windows-1256، ولا يوجد خيار لاختيار الترميز في الإعدادات.
وLatin-1 هو ما يفسّر ظهور الرموز بدل رسالة خطأ: في ذلك الترميز يقابل كل بايت حرفًا ما، فينجح المسار البديل دائمًا، غير أنه ينتج نصًّا خاطئًا.
هذا السلوك مسجَّل بوصفه عيبًا لا بوصفه أمرًا مقبولًا. وإلى أن يُصلَح، الحل هو تحويل الملف.
الحفظ بترميز UTF-8
يتم على الحاسوب في دقيقة تقريبًا.
ويندوز. افتح الملف ببرنامج Notepad++، ثم Encoding ← Character sets ← Arabic ← Windows-1256، وتأكّد أن النص صار مقروءًا، ثم Encoding ← Convert to UTF-8 واحفظ.
ماك ولينكس. سطر واحد يكفي:
iconv -f CP1256 -t UTF-8 book.txt > book-utf8.txt
اعمل على نسخة دائمًا. إن أخطأت في تحديد الترميز الأصلي ثم حفظت، صار التلف نهائيًا.
ليست مشكلة خط
الخط الناقص يُظهر مربعات داخل جملة سليمة. أما الترميز الخاطئ فيُظهر حروفًا أخرى، ولا يغيّره تبديل الخط.
هناك عرض ثالث مختلف تمامًا: أن تظهر الحروف منفصلة بدل أن تتصل، أو أن تضطرب مواضع التشكيل. تلك مشكلة تغطية خط فعلية، وحلّها في إضافة خط خاص بك.
وليست تلفًا في الملف
الملف التالف لا يُفتح عادةً أو يتوقف في منتصفه. أما إذا ظهر الكتاب كاملًا بحروف خاطئة على نحو منتظم، فالبايتات سليمة. الفرق مشروح في كيف تعرف أن الملف تالف.
وتغيير اسم الملف لا يفعل شيئًا، لأن الامتداد لا علاقة له بالبايتات.
كي لا تتكرر
إن وُجد الكتاب نفسه بصيغة EPUB فخذه؛ فهذه الصيغة تُعلن ترميزها داخليًا، فلا تنشأ المشكلة أصلًا. وكتب مؤسسة هنداوي متاحة بهذه الصيغة، وهو سبب إضافي لتفضيلها.