العربية

البيانات وجداول البيانات · CSV منظف

RFC 4180 موضح: أقرب شيء CSV يجب أن يتوافق مع معيار رسمي

· خلفية

ملف CSV rfc-4180 تنسيقات البيانات

CSV سجلات تحتوي على فواصل فاصلة، CRLF نهايات وعلامات اقتباس مضاعفة تتم محاذاتها في مخرجات متسقة
الرسم التوضيحي المتجه الأصلي ToolAcre

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

ملفان "صالحان" CSV لا يستطيع أي محلل قراءتهما بشكل صحيح - لماذا نما التنسيق لعقود من الزمن دون معيار

يمكن أن يحمل ملفان امتداد .csv بينما يستخدم أحدهما الفواصل المنقوطة، بينما يستخدم الآخر علامات التبويب ويطبق كل منهما علامات الاقتباس بشكل مختلف. يجب أن يعرف المحلل اللغوي اللهجة قبل أن تصبح علامات الترقيم بنية. يبدأ ToolAcre بأربعة مرشحين ويسجل نماذج الأشكال المحللة بدلاً من الثقة في الامتداد.

تشرح هذه المرونة سبب كون عبارة "صالح CSV" وصفًا غير كامل في كثير من الأحيان. يمكن للمنظف قبول الانحرافات الشائعة ثم إجراء تسلسل لنتيجة متسقة. يتم تحديد سلوكه من خلال التكوين والاختبارات، مما يوفر عقدًا أكثر فائدة من افتراض أن كل منتج يتبع مذكرة واحدة بشكل مثالي.

ما هو RFC 4180 — مذكرة إعلامية من 2005 توثق الممارسة الشائعة، وليست معيارًا ملزمًا

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

عندما يكون تاريخ المعايير الخارجية مهمًا، استشهد بالمنشور الأساسي بشكل منفصل. لاستخدام ToolAcre، يكون الدليل ذو الصلة محليًا: يتم تعيين الكود الافتراضي على CRLF، ويقتبس الأحرف الهيكلية، ويضاعف علامات الاقتباس الداخلية ويبلغ عن صف يختلف عرضه عن الرأس.

تستخدم أدلة المستودع RFC 4180 باعتبارها الاتفاقية المستهدفة؛ تاريخ النشر خارج مجموعة المصدر

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

المدخلات الخشنة لا تسبب الرفض. يتم تعبئة الصفوف القصيرة بخلايا فارغة؛ تحتفظ الصفوف الطويلة بالإضافات، ويتلقى كلاهما تحذيرات مرقمة. يقوم المُسلسِل بكتابة كل صف تم الاحتفاظ به، لذا فإن "الإخراج النظيف" لا يعني أن البرنامج قد خمن كيفية إصلاح الخلاف الهيكلي.

الاقتباس وفقًا للمذكرة - متى يجب اقتباس الحقول وكيف تتم مضاعفة الاقتباس المزدوج الحرفي

يجب أن يتم اقتباس الحقل عندما يحتوي على المحدد المختار أو علامة الاقتباس أو حرف نهاية السجل. ToolAcre بالإضافة إلى ذلك، يقتبس المسافات البادئة أو اللاحقة حتى لا يقوم محلل آخر بقصها بصمت. داخل الحقل المقتبس، يصبح كل اقتباس مزدوج حرفي علامتي اقتباس مزدوجتين.

يتطلب مفتاح اقتباس كل حقل نمطًا موحدًا؛ وإلا فسيتم نقل الإخراج إلى الحد الأدنى. قد تختفي علامات اقتباس المصدر المتكررة بينما تظل القيم التي تم تحليلها متساوية. هذا التطبيع متوقع ولهذا السبب تقوم الاختبارات بمقارنة الجدول المسترد بالإضافة إلى الإخراج الدقيق للأمثلة المحددة.

نوع الوسائط text/csv — الرأس الاختياري ومعلمات مجموعة الأحرف، ولماذا نادرًا ما تنتقل مع ملف على القرص

نادرًا ما يصل الملف الموجود على القرص مع معلمات نوع الوسائط المرفقة. ToolAcre لا يقرأ المعلمة `header` أو `charset` من الملف المحدد. وهو يعتمد على عقد المسار الخاص به: نص UTF-8 ورأس الصف الأول والكشف عن المحددات المدعومة أو التحديد اليدوي.

يقوم مفتاح التصدير الاختياري BOM بكتابة U+FEFF قبل الرأس الأول. قد يساعد ذلك جدول البيانات في التعرف على UTF-8، لكن التكوين يحذر من أنه يمكن أن يكسر البرنامج النصي الصارم أو استيراد قاعدة البيانات لأن العلامة تنضم إلى الاسم الأول عندما لا يتم تجريده. اتركه ما لم يطلب المستهلك ذلك.

حيث يتباعد العالم - الفواصل المنقوطة، ونهايات أسطر LF، والصفوف الممزقة، والتشفيرات غير المسماة، ولماذا لا تتسامح المذكرة مع أي منها

قد يستخدم الإدخال الحقيقي فاصلة منقوطة أو علامة تبويب أو أنبوب أو LF أو CR وحيدة وصفوف غير متساوية وبادئة UTF-8 BOM. يقبل المحلل اللغوي عمدا كل نهايات الأسطر والمرشحين المحددين. لا "يتسامح" مع الصفوف الممزقة بصمت؛ فهو يحتفظ بالبيانات ويرفق تحذيرًا.

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

يقبل ToolAcre العديد من الانحرافات الواقعية أثناء الإبلاغ عن الصفوف غير المنتظمة بدلاً من رفضها

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

تعد سلامة حقن الصيغة بمثابة سياسة تصدير موضوعة فوق بناء الجملة CSV. عند التمكين، تتلقى الأحرف البادئة المحفوفة بالمخاطر فاصلة عليا باستثناء الأشكال الرقمية العادية. يؤدي ذلك إلى تغيير قيم أمان جداول البيانات بشكل متعمد؛ إنه ليس جزءًا من الهروب من الاقتباس أو نظام النوع العام.

اهدف إلى إخراج النمط RFC حتى عندما تتجاهله المدخلات - كيف يقوم منظف ToolAcre CSV بإصلاح الملفات من أجل التحديد والاقتباس المتسقين

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

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