تفتح تصديرًا في محرّر نصوص فإذا كل حقل مغلّف: "Amman","42","2026-08-05". لا شيء كان يحتاج تغليفًا. يبدو أن الملف شُوّه في طريق الخروج، أو أن أحدًا أضاف محارف إلى بياناتك.
لماذا في ملف CSV عندي علامات اقتباس حول كل حقل
الكاتب يقتبس كل شيء، وذلك مسموح
يجب اقتباس الحقل فقط حين يحمل فاصلة أو علامة اقتباس أو انتقال سطر أو مسافات في طرفيه. لكن للبرنامج أن يقتبس كل حقل رغم ذلك، وكثير منها يفعل لأنه أبسط من التقرير. الملفان كلاهما CSV صحيح، وفي كليهما تكون علامات الاقتباس ترقيمًا لا بيانات — ينزعها القارئ ويعيد القيمة الأصلية.
ما وظيفة علامات الاقتباس فعلًا
يفصل CSV الحقول بفاصلة، وذلك ينجح حتى يحمل حقلٌ فاصلةً. لا محرف هروب في الصيغة — لا شرطة مائلة عكسية — فالجواب أن يُغلَّف الحقل كلّه باقتباس ويُعلَم القارئ أن الفواصل في الداخل نصّ لا حدود.
التغليف نفسه يحلّ ثلاث مشكلات أخرى: انتقال سطر داخل قيمة، ومسافات في البداية أو النهاية كانت ستُقصّ، وعلامة الاقتباس نفسها. تلك الأخيرة هي سبب رؤيتك "" أزواجًا. إذ لا محرف هروب، تُكتب علامة الاقتباس الحرفية داخل حقل مقتبس مرّتين، ويطوي القارئ كل زوج إلى واحدة.
escapeField من أدوات CSV على هذا الموقع، مُشغَّلًا على كل قيمة أثناء عرض الصفحة. حيث يختلف العمودان الأوسط والأيمن، تكون علامات الاقتباس في ملفك من عادة الكاتب ويمكن أن تذهب. حيث يتطابقان، تكون علامات الاقتباس ممسكةً بالصفّ وحذفها يكسره.لماذا يقتبس برنامج كل شيء
التقرير حقلًا حقلًا يعني فحص كل قيمة قبل كتابتها. الاقتباس دون شرط يعني ألّا تفحص شيئًا وألّا تخطئ أبدًا. في تصدير يمرّ على مليون صفّ، ذلك فرق حقيقي في الشفرة وفرق حقيقي في الثقة — والمخرجات صحيحة في الحالتين، فيأخذ به كثير من مصدّري قواعد البيانات وأدوات التقارير والسكربتات.
يصمد أيضًا أمام تغيّر البيانات. عمود رموز بريدية لم يحمل فاصلةً قطّ سيحمل واحدة يومًا، والملف الذي اقتبس كل شيء من البداية لا يبالي.
ما الذي ينكسر إن نزعتها
تنزاح الصفوف، وتنزاح في صمت. انزع الاقتباس من "Smith, John" فيصير ذلك الحقل الواحد حقلين. كل عمود بعده ينتقل مكانًا واحدًا إلى اليسار، في ذلك الصفّ وحده — فيبقى الملف يفتح، ويبقى يبدو جدولًا، وفيه صفّ رقم الهاتف فيه في عمود المدينة.
هذا هو نمط العطل الجدير بالتسمية، لأن الملف الذي يعجز عن الفتح يُصلَح. أما الملف الذي يفتح خطأً فيُستعمل.
إن كان لا بدّ من حذفها — فبعض الأنظمة القديمة يعجز فعلًا عن التعامل مع حقول مقتبسة — فالطريق الآمن أن تقرأ الملف بمحلّل سليم وتعيد كتابته بلا اقتباس، بعد أن تكون قد تحقّقت أن لا قيمة تحمل فاصلًا أو علامة اقتباس أو انتقال سطر. منظّف CSV يقرأ الملف كما يقرؤه الجدول، فما يريك إيّاه هو القيم بعد التحليل لا الترقيم الخام.
متى تكون علامات الاقتباس هي المشكلة فعلًا
حالة واحدة تستحقّ الفصل. إن استوردت الملف فإذا الخلايا نفسها تحمل علامات اقتباس — تقرأ الخلية "Amman" بدل Amman — فالقارئ لم يعاملها ترقيمًا إطلاقًا. يعني ذلك عادةً أن الفاصل خُمّن خطأً: إن كان الملف مفصولًا بفاصلة منقوطة وقرأه شيء مفصولًا بفاصلة، يصير كل سطر حقلًا واحدًا هائلًا وتنجو علامات الاقتباس داخله دون مسّ.
تلك مشكلة فاصل في ثياب مشكلة اقتباس، وكون CSV بلا حَكَم هو سبب حدوثها أصلًا.
النسخة القصيرة
علامات الاقتباس حول كل حقل مشروعة وشائعة وليست دليل تلف. بعضها بنيوي وبعضها لا، ولا تستطيع أن تعرف أيّها بالعين، والقارئ الصحيح يجعل التفريق بلا أهمّية. اتركها إلا أن يرفض شيء في المسار الملف رفضًا حقيقيًّا.