أدلة

ملف CSV يعرض رموزاً غريبة بدلاً من الحروف العربية: السبب والحل

تصدّر قائمة عملاء وتفتحها في برنامج آخر، فيظهر اسم مثل محمد على هيئة رموز غريبة أو علامات استفهام. البيانات ليست تالفة. كل ما في الأمر أن البرنامج قرأ البايتات بترميز أحرف مختلف عن الترميز الذي كُتبت به.

آخر تحديث:

السبب: ترميزان مختلفان للحروف نفسها

ملف CSV نص عادي لا يحمل أي إشارة إلى طريقة ترميز أحرفه. تكتب معظم البرامج اليوم بترميز UTF-8، حيث يشغل الحرف العربي بايتين. أما برامج ويندوز القديمة وكثير من إصدارات Excel على الأنظمة العربية فتستخدم ترميز Windows-1256، حيث يشغل الحرف نفسه بايتاً واحداً.

عندما يُقرأ نص UTF-8 على أنه ترميز أحادي البايت، يتحول كل حرف إلى رمزين غريبين. وعندما يُقرأ نص أحادي البايت على أنه UTF-8، يكون البايت المنفرد غير صالح ويظهر عادة كعلامة استفهام أو رمز بديل.

مواقف شائعة

يصدّر متجر إلكتروني أو نظام CRM أو نموذج ويب ملفاً بترميز UTF-8، وعند النقر المزدوج يُفتح الملف في Excel بحروف مشوهة. يحدث ذلك لأن كثيراً من إصدارات Excel لا تتعرف على UTF-8 إلا إذا بدأ الملف بعلامة غير مرئية تُسمى علامة ترتيب البايت.

ويحدث العكس أيضاً: قائمة محفوظة من Excel بصيغة CSV التقليدية تُستورد إلى أداة نشرات بريدية أو إلى سكربت فتظهر علامات استفهام، لأن ذلك البرنامج يتوقع UTF-8.

ومن المشكلات المرتبطة الفاصل بين الأعمدة. ففي الإعدادات الإقليمية التي تستخدم الفاصلة فاصلاً عشرياً، يتوقع Excel فاصلة منقوطة بين الأعمدة، لذلك قد ينتهي ملف مفصول بالفواصل كاملاً داخل عمود واحد.

فتح ملف UTF-8 في Excel بشكل صحيح

بدلاً من النقر المزدوج، استورد الملف. بهذه الطريقة يسألك Excel عن الترميز والفاصل بدلاً من تخمينهما.

  1. افتح مصنفاً فارغاً في Excel.
  2. اختر «بيانات» ثم «من نص/CSV»، وحدّد الملف.
  3. اضبط «أصل الملف» على 65001: Unicode (UTF-8) وتحقّق من المعاينة.
  4. اختر المحدِّد الصحيح إذا لم تكن الأعمدة مفصولة بعد، ثم حمّل البيانات.
  5. عند الحفظ، اختر صيغة CSV UTF-8 حتى يقرأ البرنامج التالي الملف بشكل صحيح.

تحويل ملف CSV إلى UTF-8

يجرّب محوّل البيانات أولاً قراءة الملف بترميز UTF-8، ثم ينتقل إلى Windows-1252 عندما لا تكون البايتات UTF-8 صالحاً. هذا الترميز مخصص للغات أوروبا الغربية ولا يعرض الحروف العربية بشكل صحيح، لذلك فإن الطريق الأضمن لملفات Windows-1256 العربية هو استيرادها أولاً في Excel بالترميز الصحيح ثم حفظها بصيغة CSV UTF-8. أما الملفات السليمة بترميز UTF-8 فيحوّلها المحوّل إلى JSON وصيغ أخرى، ويتعرف بنفسه على الفاصلة المنقوطة والفاصلة وعلامة الجدولة كفواصل.

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

تحقّق من أن شيئاً لم يتغير

بعد التحويل يحسن التأكد من أن الترميز وحده تغيّر وليس المحتوى. قارن ملفي CSV عبر عمود مفتاحي مثل رقم العميل: تعرض الأداة الخلايا المتغيرة والصفوف الجديدة والصفوف المفقودة، فيظهر أي استيراد فاشل قبل استخدام القائمة.

أنجزها الآن

أدلة أخرى