"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > تصدير JSON إلى CSV: ملاحظة حول CSV وUnicode

تصدير JSON إلى CSV: ملاحظة حول CSV وUnicode

تم النشر بتاريخ 2024-08-01
تصفح:982

Export JSON to CSV: a note on CSV and Unicode

هناك العديد من مكتبات JS التي تسمح بالتصدير إلى التفوق. ولكن ماذا لو أردنا اتباع نهج الحد الأدنى لتجنب التبعيات الإضافية.

أبسط طريقة هي إنتاج ملف CSV من JSON والذي يمكن فتحه بسهولة في برنامج Excel.

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

تنسيق CSV

يحدد التنسيق العام RFC 4180 ونوع MIME لملفات القيم المفصولة بفواصل (CSV) تعريف تنسيق CSV. لاحظ أن هذه مذكرة فقط لأن تنسيق CSV غير موحد رسميًا.

التعاريف الرئيسية

  1. يقع كل سجل على سطر منفصل، محدد بفاصل أسطر (CRLF).
  2. قد يكون أو لا يحتوي السجل الأخير في الملف على فاصل أسطر نهاية.
  3. يجب أن يحتوي الرأس على نفس عدد الحقول في الملف.
  4. قد يتم أو لا يتم وضع كل حقل بين علامتي اقتباس مزدوجتين.
  5. الحقول التي تحتوي على فواصل الأسطر (CRLF)، وعلامات الاقتباس المزدوجة، والفواصل يجب أن تكون محاطة بعلامات اقتباس مزدوجة.
  6. إذا تم استخدام علامات الاقتباس المزدوجة لإحاطة الحقول، فيجب تجاوز علامة الاقتباس المزدوجة التي تظهر داخل الحقل عن طريق يسبقها بعلامة اقتباس مزدوجة أخرى.

التشفير

في بيانات JSON الخاصة بي، لدي أحرف æ å ø من مجموعة أحرف ISO Latin-1 (ISO/IEC 8859-1) التي يجب أخذها في الاعتبار عند إنشاء ملف CSV.

بعض المقتطفات من الإصدار 15.0 من Unicode® Standard التي يجب وضعها في الاعتبار.

Unicode مقابل UTF-8/16/32

من الإصدار القياسي Unicode® 15.0:

  • Unicode هو المعيار العالمي لترميز الأحرف للأحرف المكتوبة والنصوص، ويحتوي على 149,186 حرفًا من النصوص البرمجية في العالم.
  • يتم تمثيل أحرف Unicode في أحد نماذج الترميز الثلاثة: نموذج 32 بت (UTF-32)، نموذج 16 بت (UTF-16)، ونموذج 8 بت (UTF-8).
  • يؤيد اتحاد Unicode بشكل كامل استخدام أي من نماذج ترميز Unicode الثلاثة كطريقة متوافقة لتنفيذ معيار Unicode. ومن المهم عدم الوقوع في فخ محاولة التمييز بين "UTF-8 مقابل Unicode" على سبيل المثال. UTF-8، UTF-16، وUTF-32 كلها طرق صالحة ومتوافقة على حد سواء لتنفيذ الأحرف المشفرة لمعيار Unicode.

علامة ترتيب البايت (BOM)

  • الحرف U FEFF (UTF-8 EF BB BF) المستخدم لعلامة ترتيب البايت يُسمى مسافة صفرية بدون فاصل.
  • تعتبر نماذج ترميز UTF-16 وUTF-32 للنص العادي Unicode حساسة لترتيب البايت المستخدم عند كتابة البيانات إلى ملف.
  • تحديد تسلسل البايت في بداية a يمكن اعتبار دفق البيانات بمثابة إشارة شبه مؤكدة إلى أن دفق البيانات يستخدم نظام ترميز UTF-8.

باختصار، فإن إضافة مسافة بدون فاصل بعرض صفر قبل سلسلة CSV ستفرض على Excel تطبيق ترميز UTF-8 بدلاً من 1252: أوروبا الغربية (Windows) أو بعض الترميزات الأخرى التي سيختارها Excel في حالة وجود حرف U FEFF غير مزود.

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

بيان الافراج تم إعادة نشر هذه المقالة على: https://dev.to/andrewelans/export-json-to-csv-what-is-csv-and-unicode-2341?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3