data · 6 دقائق قراءة

لماذا في ملف CSV عندك علامات اقتباس حول كل حقل

لم يُضف شيء إلى قيمك. بعض تلك العلامات يمسك الصفّ معًا، والباقي عادةٌ ممّا كتب الملف.

تفتح تصديرًا في محرّر نصوص فإذا كل حقل مغلّف: "Amman","42","2026-08-05". لا شيء كان يحتاج تغليفًا. يبدو أن الملف شُوّه في طريق الخروج، أو أن أحدًا أضاف محارف إلى بياناتك.

لماذا في ملف CSV عندي علامات اقتباس حول كل حقل

الكاتب يقتبس كل شيء، وذلك مسموح

يجب اقتباس الحقل فقط حين يحمل فاصلة أو علامة اقتباس أو انتقال سطر أو مسافات في طرفيه. لكن للبرنامج أن يقتبس كل حقل رغم ذلك، وكثير منها يفعل لأنه أبسط من التقرير. الملفان كلاهما CSV صحيح، وفي كليهما تكون علامات الاقتباس ترقيمًا لا بيانات — ينزعها القارئ ويعيد القيمة الأصلية.

ما وظيفة علامات الاقتباس فعلًا

يفصل CSV الحقول بفاصلة، وذلك ينجح حتى يحمل حقلٌ فاصلةً. لا محرف هروب في الصيغة — لا شرطة مائلة عكسية — فالجواب أن يُغلَّف الحقل كلّه باقتباس ويُعلَم القارئ أن الفواصل في الداخل نصّ لا حدود.

التغليف نفسه يحلّ ثلاث مشكلات أخرى: انتقال سطر داخل قيمة، ومسافات في البداية أو النهاية كانت ستُقصّ، وعلامة الاقتباس نفسها. تلك الأخيرة هي سبب رؤيتك "" أزواجًا. إذ لا محرف هروب، تُكتب علامة الاقتباس الحرفية داخل حقل مقتبس مرّتين، ويطوي القارئ كل زوج إلى واحدة.

القيمةمقتبسة عند اللزوم فقطمقتبسة كلّهاAmmanAmman"Amman"لا شيء يحتاج اقتباسًاSmith, John"Smith, John""Smith, John"فيها الفاصل4242"42"لا شيء يحتاج اقتباسًاHe said "yes""He said ""yes""""He said ""yes"""فيها علامة اقتباسLine one\nLine two"Line one\nLine two""Line one\nLine two"فيها انتقال سطر padded " padded "" padded "فيها مسافات على الطرفين
العمود الأوسط هو escapeField من أدوات CSV على هذا الموقع، مُشغَّلًا على كل قيمة أثناء عرض الصفحة. حيث يختلف العمودان الأوسط والأيمن، تكون علامات الاقتباس في ملفك من عادة الكاتب ويمكن أن تذهب. حيث يتطابقان، تكون علامات الاقتباس ممسكةً بالصفّ وحذفها يكسره.

لماذا يقتبس برنامج كل شيء

التقرير حقلًا حقلًا يعني فحص كل قيمة قبل كتابتها. الاقتباس دون شرط يعني ألّا تفحص شيئًا وألّا تخطئ أبدًا. في تصدير يمرّ على مليون صفّ، ذلك فرق حقيقي في الشفرة وفرق حقيقي في الثقة — والمخرجات صحيحة في الحالتين، فيأخذ به كثير من مصدّري قواعد البيانات وأدوات التقارير والسكربتات.

يصمد أيضًا أمام تغيّر البيانات. عمود رموز بريدية لم يحمل فاصلةً قطّ سيحمل واحدة يومًا، والملف الذي اقتبس كل شيء من البداية لا يبالي.

ما الذي ينكسر إن نزعتها

تنزاح الصفوف، وتنزاح في صمت. انزع الاقتباس من "Smith, John" فيصير ذلك الحقل الواحد حقلين. كل عمود بعده ينتقل مكانًا واحدًا إلى اليسار، في ذلك الصفّ وحده — فيبقى الملف يفتح، ويبقى يبدو جدولًا، وفيه صفّ رقم الهاتف فيه في عمود المدينة.

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

إن كان لا بدّ من حذفها — فبعض الأنظمة القديمة يعجز فعلًا عن التعامل مع حقول مقتبسة — فالطريق الآمن أن تقرأ الملف بمحلّل سليم وتعيد كتابته بلا اقتباس، بعد أن تكون قد تحقّقت أن لا قيمة تحمل فاصلًا أو علامة اقتباس أو انتقال سطر. منظّف CSV يقرأ الملف كما يقرؤه الجدول، فما يريك إيّاه هو القيم بعد التحليل لا الترقيم الخام.

متى تكون علامات الاقتباس هي المشكلة فعلًا

حالة واحدة تستحقّ الفصل. إن استوردت الملف فإذا الخلايا نفسها تحمل علامات اقتباس — تقرأ الخلية "Amman" بدل Amman — فالقارئ لم يعاملها ترقيمًا إطلاقًا. يعني ذلك عادةً أن الفاصل خُمّن خطأً: إن كان الملف مفصولًا بفاصلة منقوطة وقرأه شيء مفصولًا بفاصلة، يصير كل سطر حقلًا واحدًا هائلًا وتنجو علامات الاقتباس داخله دون مسّ.

تلك مشكلة فاصل في ثياب مشكلة اقتباس، وكون CSV بلا حَكَم هو سبب حدوثها أصلًا.

النسخة القصيرة

علامات الاقتباس حول كل حقل مشروعة وشائعة وليست دليل تلف. بعضها بنيوي وبعضها لا، ولا تستطيع أن تعرف أيّها بالعين، والقارئ الصحيح يجعل التفريق بلا أهمّية. اتركها إلا أن يرفض شيء في المسار الملف رفضًا حقيقيًّا.

أسئلة

لماذا في ملف CSV عندي علامات اقتباس حول كل حقل؟

لأن البرنامج الذي كتبه يقتبس كل حقل بدل أن يقرّر حقلًا حقلًا. كلاهما CSV صحيح. لا يجب اقتباس الحقل إلا إن حمل الفاصل أو علامة اقتباس أو انتقال سطر أو مسافات في طرفيه — لكن للكاتب أن يقتبس كل شيء، وكثير منها يفعل لأنه أبسط وآمن دائمًا. بياناتك لم تتلف ولم يُضف شيء إلى القيم نفسها.

هل أستطيع حذف علامات الاقتباس وحسب؟

من الحقول التي لا تحتاجها فقط، ولا تستطيع أن تعرف أيّها بالنظر. الحقل المقتبس الذي يحمل فاصلة سينشطر عمودين لحظة ذهاب اقتباسه، وينزاح كل صفّ بعده. إن كان الملف ذاهبًا إلى جدول أو برنامج آخر، فاتركها: القارئ الصحيح ينزعها عنك ويعيد القيمة الأصلية.

هل علامات الاقتباس جزء من بياناتي؟

لا. هي ترقيم الصيغة، كما تكون النقطة ترقيمًا لا جزءًا من الجملة. حين يحلّل القارئ الملف، تصير "Smith, John" القيمةَ ذات الأربعة عشر محرفًا Smith, John بلا علامة اقتباس فيها إطلاقًا. إن كنت ترى علامات اقتباس داخل خلية في جدول بعد الاستيراد، فالملف يحمل اقتباسات مضاعفة لم يفكّها القارئ، وذلك عطل آخر.

ماذا تعني علامة الاقتباس المضاعفة، مثل ""yes""؟

هي علامة اقتباس حرفية واحدة داخل حقل مقتبس. CSV بلا هروب بالشرطة المائلة العكسية، فتُكتب علامة الاقتباس داخل قيمة مقتبسة مرّتين: القيمة He said "yes" تُخزَّن "He said ""yes""". يطوي القرّاء كل زوج إلى واحدة. رؤية اقتباسات مضاعفة في ملفك دليل على أنه كُتب صحيحًا لا رديئًا.

لماذا يضيف Excel علامات اقتباس حين أحفظ بصيغة CSV؟

للسبب نفسه: يقتبس أي حقل قد يلتبس لولا ذلك. الخلية التي تحمل فاصلة أو انتقال سطر من Alt+Enter أو مسافة في المقدّمة تخرج مقتبسة. لا يقتبس Excel كل شيء افتراضيًّا، فالملف الذي فيه كل حقل مقتبس أرجح أن يكون من تصدير قاعدة بيانات أو أداة تقارير أو سكربت.

هل تكبّر علامات الاقتباس الملف؟

بايتان لكل حقل، وواحد لكل علامة اقتباس مضاعفة في الداخل. في ملف فيه مئة ألف صفّ وعشرة أعمدة يبلغ ذلك نحو ميغابايتين من الترقيم. هذه هي الكلفة الحقيقية الوحيدة، وهي ثمن ألّا تضطرّ أبدًا إلى تقرير هل قيمة بعينها آمنة.

هل الملف الذي فيه اقتباس حول كل شيء ما زال CSV صحيحًا؟

نعم. يسمح RFC 4180 بذلك صراحةً — يجوز دائمًا تغليف الحقول باقتباس، احتاجت إليه أو لم تحتج. أي قارئ يرفض ملفًّا كهذا فهو الشيء الخطأ.

هل يُرفع ملفي لفحصه؟

لا. أدوات CSV على هذا الموقع تقرأ الملف في متصفّحك ولا ترسله إلى أي مكان. لا مكوّن خادم هنا إطلاقًا، وهذا يهمّ مع الجداول أكثر من المعتاد — فهي في الأغلب مملوءة بأسماء الناس وعناوينهم وأرقامهم.

أدوات من هذا الدليل

المزيد من أدوات البيانات — كلّها تعمل في متصفّحك، ولا واحدة منها ترفع ملفًّا.