ملفات CSV: صيغة بلا أنواع، وبلا ترميز، وبلا لجنة
ما ملف CSV حقًا، ولماذا يُفتح الملف نفسه بشكل مختلف في برنامجَي جداول، وما الذي تقوله قواعد علامات الاقتباس فعلًا. حوّل CSV داخل متصفحك دون رفع أي ملف.
نظرة سريعة
- النوع
- مستندات
- الامتدادات
- .csv
- نوع MIME
- text/csv
ملف .csv ملف نصي. لا ترويسة فيه، ولا إصدار، ولا معلومات عن الأنواع، ولا شيء ثنائي — افتحه في Notepad وسترى كل بايت فيه. كل سطر صف، وشيء ما يفصل بين الحقول. هذه هي الصيغة بأكملها، ولهذا يستطيع كل شيء أن يكتبها، ولهذا لا يتفق برنامجان على معناها.
اقرأ المزيد
ظلت الصيغة خمسة وعشرين عامًا بلا مواصفة. ثم جاء RFC 4180 عام 2005، وهو مصنّف صراحةً وثيقةً إعلامية (Informational) لا معيارًا — يصف ما تفعله معظم التطبيقات بدلًا من أن يملي على أحد ما يفعله. وما يحسمه فعلًا هو علامات الاقتباس: فالحقل الذي يحتوي على الفاصل أو علامة اقتباس أو فاصل سطر يُحاط بعلامتي اقتباس مزدوجتين، وعلامة الاقتباس داخل مثل هذا الحقل تُكتب مرتين. وهذه القاعدة هي الفرق بين أن تكون "Widget, large" خلية واحدة أو خليتين، وهي القاعدة التي تتجاهلها المحللات الساذجة.
والفاصل ليس فاصلة دائمًا. فبرنامج الجداول الذي يعمل بإعدادات منطقة تكتب الكسور العشرية بالشكل 1,5 لا يستطيع أن يستخدم الفاصلة أيضًا للفصل بين الحقول، فيصدّر Excel هناك فاصلة منقوطة — على الجهاز نفسه، ومن القائمة نفسها، منتجًا ملفًا لا يستطيع البلد المجاور فتحه. وكثيرًا ما تستخدم صادرات قواعد البيانات علامات الجدولة. وكل أداة تقرأ CSV جيدًا تخمّن الفاصل من الأسطر الأولى، وهذا ما يفعله هذا الموقع أيضًا.
ولا يوجد كذلك تصريح بالترميز، وهنا تضيع البيانات فعلًا. فملف CSV يضم أسماء صينية حفظه برنامج وفتحه آخر يعود رموزًا مشوّهة، لأن أحدهما افترض UTF-8 والآخر صفحة الترميز الخاصة بالنظام. ولأن كل حقل نص بلا نوع، يعيد برنامج الجداول التخمين عند الاستيراد: فتختفي الأصفار البادئة من أرقام القطع، وتتحول المعرّفات الطويلة إلى الترميز العلمي، ويصير كل ما يشبه التاريخ تاريخًا. كان الملف سليمًا؛ أما قراءته فلم تكن كذلك.
تحويل CSV إلى صيغ أخرى
الأسئلة الشائعة: CSV
هل ملف CSV مجرد ملف نصي؟
نعم، تمامًا. لا حاوية، ولا ضغط، ولا شيء ثنائي. يفتحه أي محرر نصوص، وما تراه هو ما يحتويه.
لماذا يستخدم ملف CSV الخاص بي الفاصلة المنقوطة؟
لأنه صُدّر بإعدادات منطقة تكون فيها الفاصلة فاصلًا عشريًا، فلم يكن ممكنًا أن تفصل الفاصلة بين الحقول أيضًا. ويبقى ملف CSV مع ذلك، وأي قارئ جدير بالاستخدام يكتشف الفاصل بدلًا من أن يفترضه.
لماذا اختفت الأصفار البادئة؟
لأن CSV لا يخزّن أنواعًا، فخمّن برنامج الجداول. تبدو «007» رقمًا، فصارت 7. لم يكن في الملف أي خطأ — الاستيراد هو ما قرّر. وتتيح لك معظم برامج الجداول تعيين العمود نصًا أثناء الاستيراد، وهذا هو الحل الموثوق الوحيد.
لماذا يظهر نصي الصيني مشوّهًا؟
لأن الملف لا يحمل أي تصريح بترميزه، فخمّن البرنامج الذي فتحه ترميزًا مختلفًا عن البرنامج الذي كتبه. والحفظ بترميز UTF-8 مع علامة ترتيب البايتات (BOM) هو ما يجعل Excel يقرؤه بشكل صحيح، على حساب علامة تعرضها بعض الأدوات الأخرى حروفًا دخيلة.
هل يمكنني تحويل CSV إلى PDF هنا؟
نعم. يُحلَّل الملف على أنه CSV بدلًا من تقسيمه عند الفواصل، فتنجو الحقول المحاطة بعلامات اقتباس، وتُضبط عروض الأعمدة وفق محتوياتها مع صف الترويسة بخط عريض. وما تحصل عليه مخصص للقراءة والطباعة — فلا شيء في ملف PDF يمكن فرزه أو جمعه.
وماذا عن التحويل إلى Excel؟
لا حاجة إليه: فكل تطبيق جداول بيانات يفتح ملف CSV مباشرة، والتحويل أولًا لا يضيف إلا خطوة تُخمَّن فيها الأنواع. أما التحويل المتاح هنا فهو في الاتجاه المعاكس — من PDF إلى Excel، الذي يعيد بناء جدول من صفحة لم تسجّل جدولًا قط.