JSON Formatter
Pretty-print, validate and minify JSON with precise error positions.
المطورون
ترميز النصوص والملفات وفكّها، مع صيغة آمنة للروابط.
هذه أهم جملة في الصفحة، لأن سوء الفهم هذا يتكرّر — حتى في أنظمة تشغيلية.
لا يوجد في Base64 مفتاح. فمن يملك السلسلة يملك المحتوى، وفكّها يستغرق أجزاء من الثانية. وكلمة مرور مرمّزة بـBase64 هي كلمة مرور مكشوفة بخطوات إضافية.
والترميز يجري لأغراض النقل لا الأمان: مرفقات البريد وفق MIME، والصور المضمّنة كعناوين بيانات، والشهادات بصيغة PEM، والحقول الثنائية داخل JSON. والهدف في كل ذلك أن تعبر البيانات قناة نصية سليمة.
يعمل Base64 على البايتات لا على المحارف. وأي بايتات يتكوّن منها النص يحدّده الترميز السابق له — وهنا مصدر الخطأ.
الحرف العربي يشغل بايتين في UTF-8، وبايتًا واحدًا في Windows-1256. فالنص نفسه يعطي سلسلتي Base64 مختلفتين بحسب ترميز المصدر. وتعمل هذه الأداة بترميز UTF-8 دائمًا، وهو المعيار الصحيح اليوم.
وفي الرموز التعبيرية قد يتكوّن الرمز الواحد المرئي من أربعة بايتات أو أكثر. والدالة القديمة btoa في JavaScript تفشل أمام ذلك برسالة خطأ، لأنها لا تعالج إلا المحارف حتى 255 — وهي عقبة متكررة لا تظهر هنا.
وملاحظة عملية: النص العربي المرمّز بـBase64 أطول من نص لاتيني بالطول نفسه، لأن كل حرف بايتان. وهذا يهمّ عند وضع الناتج في حقل محدود الطول.
يمثّل Base64 كل ثلاثة بايتات بأربعة محارف. أي زيادة الثلث حسابيًا، إضافة إلى محارف الحشو وفواصل الأسطر — والزيادة العملية بين 33% و37%.
ولأيقونة صغيرة كعنوان بيانات داخل ملف الأنماط يستحق الأمر، لأن توفير طلب HTTP يفوق بضع مئات من البايتات الإضافية. ولصورة فوتوغرافية لا يستحق.
والقاعدة العملية: ضمّن ما دون أربعة كيلوبايتات تقريبًا، واربط ما فوقها. ولا تضمّن صورة داخل ملف يُطلب كثيرًا، لأن البايتات الإضافية تُدفع مع كل طلب.
لا. ليس تشفيرًا بل إعادة كتابة بلا مفتاح، ويمكن لأي أحد عكسه.
ثلاثة بايتات تصير أربعة محارف، أي زيادة نحو الثلث مع الحشو.
نعم. الترميز هنا بـUTF-8 دائمًا، فيعمل مع العربية والرموز التعبيرية بخلاف الدالة القديمة btoa.
تستبدل + و/ بـ - و_ ليصلح الناتج للاستخدام في العناوين وأسماء الملفات.
حشو ليصبح الطول من مضاعفات الأربعة. هي جزء من الصيغة لا خطأ.
لا. التحويل يجري داخل هذه الصفحة.