كيفية الاستخدام
- اختر «نص ← بايتات» للترميز، أو «بايتات ← نص» لفك الترميز.
- اختر تنسيق البايتات: ثنائي أو سداسي عشري أو عشري أو ثماني.
- اكتب النص أو الصقه. تتحدّث النتيجة وعدد البايتات أثناء الكتابة.
- انسخ النتيجة، أو أعدها إلى حقل الإدخال للتحقق من إمكانية استعادة النص.
كيف تعمل الأداة
تخزّن الحواسيب النصوص على هيئة بايتات. تستخدم هذه الأداة UTF-8، وهو الترميز المستخدم في معظم المواقع والأنظمة الحديثة. في UTF-8، تشغل أحرف ASCII الـ128 (الحروف الإنجليزية والأرقام وعلامات الترقيم الأساسية) بايتًا واحدًا لكل منها؛ لذلك يكون H بالصيغة الثنائية 01001000 وبالصيغة السداسية العشرية 48. أما الأحرف الأخرى فتشغل من بايتين إلى أربعة: فالحرف é يشغل بايتين (C3 A9)، والرمزان € و☕ يشغلان 3 بايتات، ومعظم الرموز التعبيرية تشغل 4 بايتات. لذلك قد يكون عدد البايتات أكبر من عدد الأحرف، وقد يتحول الحرف الواحد إلى عدة مجموعات من 8 بتات.
يمكن كتابة كل بايت بأربع صيغ شائعة: ثنائي من 8 خانات (00000000–11111111)، أو سداسي عشري من خانتين (00–FF)، أو عشري (0–255)، أو ثماني من 3 خانات (000–377). عند كتابة البايتات من دون فواصل، تُستكمل قيم الثنائي والسداسي العشري والثماني بأصفار لتبلغ طولًا ثابتًا، وتُستكمل القيم العشرية إلى 3 خانات كي يمكن تقسيمها مجددًا دون التباس.
يتسامح فك الترميز مع تنسيقات الإدخال: تُتجاهل المسافات وفواصل الأسطر والفواصل والفواصل المنقوطة بين البايتات، وكذلك البادئتان 0x و0b ومحارف الهروب \x. ويُتحقّق من كل مجموعة؛ فإذا احتوت على رقم غير مسموح به في التنسيق المحدد أو تجاوزت قيمتها 255، فسيُذكر موضع البايت. بعد فك الترميز، يُتحقّق من أن البايتات تشكّل UTF-8 صالحًا، ويُنبّهك إذا لم تكن نصًا.
تُحسب الأحرف المكوّنة من عدة نقاط ترميز، مثل الأعلام أو الرموز التعبيرية ذات درجات لون البشرة، على أنها عدة أحرف هنا، لأن كل نقطة ترميز تُرمّز على حدة.
أمثلة
العبارة الشهيرة “Hi” بالصيغة الثنائية
يمثل H القيمة 72 في ASCII، ويمثل i القيمة 105؛ لذا تصبح “Hi” بالصيغة الثنائية 01001000 01101001، وبالصيغة السداسية العشرية 48 69، وبالصيغة العشرية 72 105: حرفان، وبايتان، و16 بتًا.
لماذا تشغل كلمة “Café” خمسة بايتات؟
تشغل الأحرف C وa وf بايتًا واحدًا لكل منها، بينما يشغل الحرف é بايتين في UTF-8: 11000011 10101001 (C3 A9). تتكوّن الكلمة من 4 أحرف لكنها تشغل 5 بايتات، وهو أمر مهم عند التعامل مع حدود أعمدة قواعد البيانات وحقول البروتوكولات التي تُقاس بالبايتات.
قراءة تفريغ سداسي عشري
يعرض مصحّح الأخطاء القيم 48 65 6c 6c 6f 2c 20 e4 b8 96 e7 95 8c. الصقها باستخدام «بايتات ← نص» والتنسيق السداسي العشري لتحصل على “Hello, 世界”؛ إذ يشغل كل حرف صيني 3 بايتات.
الأسئلة الشائعة
لماذا يتحول الحرف الواحد إلى 16 أو 24 أو 32 بتًا؟
في UTF-8، لا تشغل بايتًا واحدًا (8 بتات) إلا أحرف ASCII. أما الأحرف المشكولة ومعظم الأبجديات الأخرى فتشغل بايتين، والصينية واليابانية والكورية والعديد من الرموز تشغل 3 بايتات، بينما تشغل الرموز التعبيرية 4 بايتات. ويُعرض كل بايت في مجموعة مستقلة.
هل هذا ASCII أم UTF-8؟
إنه UTF-8. بالنسبة إلى النصوص الإنجليزية البسيطة، تكون النتيجة مطابقة لـASCII، لأن UTF-8 صُمم ليكون متوافقًا معه. أما الأحرف التي تتجاوز ASCII فلا يمكن تمثيلها باستخدام ASCII وحده.
لماذا يظهر خطأ عند فك ترميز القيم الثنائية؟
يجب ألا يتجاوز طول كل بايت 8 خانات ثنائية، وأن يتكوّن من 0 و1 فقط. إذا لم توجد مسافات، فيجب أن يكون العدد الإجمالي للخانات من مضاعفات 8. وتحدد رسالة الخطأ رقم البايت الذي تعذّرت قراءته.
ما معنى «UTF-8 غير صالح»؟
لا تشكّل البايتات تسلسلات UTF-8 صالحة، مثل بايت منفرد قيمته أكبر من 127 أو تسلسل مبتور. قد تكون البيانات مأخوذة من ملف بترميز آخر مثل Windows-1252، أو قد لا تكون نصًا أصلًا.
الخصوصية
تُجرى عملية التحويل في متصفحك باستخدام أداة الترميز وفك الترميز المدمجة فيه لـUTF-8. لا يُرفع نصك ولا يُخزّن ولا يُضمّن في التحليلات.