النص

CRLF ↔ LF Converter

تحويل نهايات الأسطر بين Windows (CRLF) وUnix/macOS (LF) وMac الكلاسيكي (CR)، مع اكتشاف النهايات المختلطة.

تحويل إلى

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


                    

Windows, Unix/macOS, and the old classic Mac historically use different characters to mark the end of a line — CRLF, LF, and CR respectively. Mixing these styles in one file often causes odd artifacts in diffs or editors. This tool converts line endings to one style and detects mixed ones.

How to use it

Common uses

Things to keep in mind

Git can automate this conversion itself through core.autocrlf or .gitattributes — often more convenient than converting files in a repository by hand.

Mixed line endings in one file aren't always visible at a glance, but they can break parsers or scripts that expect one specific style.

مقالة عن هذه الأداة: CRLF وLF: لماذا لا تزال نهايات الأسطر تسبّب مشاكل

الأسئلة الشائعة

لماذا تختلف نهايات الأسطر بين أنظمة التشغيل؟

أنظمة Windows تستخدم تقليديًا CRLF (\r\n) لنهاية كل سطر، بينما تستخدم Unix وmacOS الحديث LF (\n) فقط، أما أجهزة Mac القديمة فكانت تستخدم CR (\r) وحده؛ وهذا الاختلاف مهم عند استخدام Git أو تشغيل سكربتات shell أو تبادل الملفات بين أنظمة مختلفة.

لماذا لا تظهر لي CRLF أو CR حقيقية عند لصق النص في الحقل؟

المتصفح يطبّع أي نص يُلصَق في حقل نصي إلى LF تلقائيًا، لذا يستحيل اكتشاف نهايات CRLF أو CR الأصلية من نص مُلصَق؛ لتحليل أو تحويل نهايات الأسطر الحقيقية في ملف يجب رفعه مباشرة عبر خيار رفع الملف.

هل الملف الذي أرفعه يُرسل إلى خادم؟

لا، قراءة الملف وتحليل نهايات الأسطر وتحويلها تتم بالكامل داخل متصفحك عبر JavaScript، دون رفع الملف إلى أي خادم.

ماذا أفعل إذا كان الملف يحتوي على مزيج من CRLF وLF؟

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

هل يمكن أتمتة التحويل عبر git؟

نعم، يقوم إعداد core.autocrlf في git بتحويل نهايات الأسطر تلقائيًا عند السحب والإيداع، بينما يتيح ملف .gitattributes تحديد نمط النهايات صراحة لأنواع ملفات معينة في المستودع.

مقالات: النص

camelCase وsnake_case وkebab-case: متى نستخدم كل صيغة

لماذا يوجد camelCase وsnake_case وkebab-case، وأين يُستخدم كل منها عادة.

Text Diff: كيف تعمل خوارزمية إيجاد الفروقات بين النصوص

كيف تجد خوارزمية الديف أصغر مجموعة تغييرات بين نسختين من نص.

التعبيرات النمطية: الأساسيات وفخّ المطابقة الجشعة

الفرق بين المطابقة الجشعة والكسولة في التعبيرات النمطية ولماذا يهم ذلك عمليًا.

فرز الأسطر: لماذا يختلف الفرز الأبجدي عن العددي

لماذا يعامل الفرز الأبجدي الأرقام كنص، وكيف يختلف ذلك عن الفرز العددي.

الهروب بالأحرف: لماذا يختلف حسب السياق (JS وJSON والشِل والريجكس)

لماذا لا توجد قاعدة هروب واحدة تصلح لكل السياقات: JS وJSON والشِل والريجكس.

عدّ الأحرف والكلمات: لماذا يعتمد على يونيكود

لماذا يمكن أن يتكون رمز تعبيري واحد ظاهريًا من عدة نقاط ترميز في يونيكود.

Lorem Ipsum: من أين جاء نص الحشو ولماذا لا معنى له

من أين جاء نص Lorem Ipsum فعليًا، ولماذا يُستخدم نص بلا معنى بدلاً من نص حقيقي.

Slugify: كيف يتحول العنوان إلى رابط صالح

كيف يتحول عنوان مقالة إلى رابط نظيف وقابل للقراءة بشرطات.

Markdown: لماذا أصبح معيار التوثيق

لماذا يظل Markdown مقروءًا حتى في صورته الخام، بخلاف HTML.

المسافات غير المرئية: لماذا تفشل مقارنة نصين متطابقين ظاهريًا

كيف يمكن لمسافة غير مرئية أن تجعل مقارنة نصين متطابقين ظاهريًا تفشل.

عكس النص: لماذا يفشل مع الرموز التعبيرية

لماذا يكسر عكس النص الساذج الرموز التعبيرية المركّبة من عدة نقاط ترميز.

تحليل تكرار النص: من سحابة الكلمات إلى كسر الشيفرات

كيف ساعد تحليل تكرار الحروف تاريخيًا في كسر شيفرات الاستبدال البسيطة.