المدونة
العربية

محول يونيكود — النقاط الرمزية وبايتات UTF-8

تحويل النص من وإلى نقاط يونيكود الرمزية والتهريبات وبايتات UTF-8

تعمل في متصفحك · لا يُرفع أي شيء

11 حرفًا مرئيًا · 11 نقطة رمزية · طول UTF-16 هو 12

النتائج

النقاط الرمزية (U+XXXX)

U+0043 U+0061 U+0066 U+00E9 U+0020 U+1F600 U+0020 U+0633 U+0644 U+0627 U+0645

JavaScript / JSON (\uXXXX)

Caf\u00E9 \uD83D\uDE00 \u0633\u0644\u0627\u0645

ES6 (\u{...})

Caf\u{E9} \u{1F600} \u{633}\u{644}\u{627}\u{645}

HTML ست عشري (&#x...;)

Café 😀 سلام

HTML عشري (&#...;)

Café 😀 سلام

بايتات UTF-8 (ست عشري)

43 61 66 C3 A9 20 F0 9F 98 80 20 D8 B3 D9 84 D8 A7 D9 85

بايتات UTF-16BE (ست عشري)

00 43 00 61 00 66 00 E9 00 20 D8 3D DE 00 00 20 06 33 06 44 06 27 06 45

البايتات حسب الترميز

UTF-8
19 بايت
UTF-16
24 بايت
EUC-KR (CP949)
5 بايت
6 من الأحرف لا يمكن كتابتها بـ EUC-KR (غير محسوبة)

EUC-KR (CP949) هو الترميز الكوري القديم: المقاطع الكورية الـ 2,350 في KS X 1001 والمقاطع الحديثة الأخرى الـ 8,822 في امتداد CP949 (UHC) تأخذ كلها بايتين. وفي UTF-8 يأخذ الحرف العربي بايتين والمقطع الكوري 3 بايتات والإيموجي 4.

جدول الأحرف

الحرفالنقطة الرمزيةUTF-8UTF-16عشريالحرف المرئي
CU+0043430043671
aU+0061610061972
fU+00666600661023
éU+00E9C3 A900E92334
(غير مرئي)U+0020200020325
😀U+1F600F0 9F 98 80D83D DE001285126
(غير مرئي)U+0020200020327
سU+0633D8 B3063315878
لU+0644D9 84064416049
اU+0627D8 A70627157510
مU+0645D9 850645160511

ما هي الأداة

اكتب نصًا فتحصل على كل الصيغ الشائعة دفعة واحدة، ولكل منها زر نسخ: نقاط يونيكود الرمزية، وتهريبات JavaScript وJSON، وصيغة ES6، ومراجع HTML الست عشرية والعشرية، وبايتات UTF-8 وUTF-16BE الخام. استخدمها لإدخال نص غير ASCII، كالنص العربي، في الشيفرة المصدرية بأمان، أو لقراءة تسلسلات \uXXXX في سجل، أو لمعرفة سبب تحوّل نص إلى رموز مشوهة.

وتقارن الأداة أيضًا عدد البايتات في UTF-8 وUTF-16 والترميز الكوري القديم EUC-KR (CP949)، وتعرض كل نقطة رمزية في جدول. والاتجاه العكسي يحوّل التهريبات أو البايتات الست عشرية إلى نص. كل شيء يجري في متصفحك ولا يُحفظ شيء.

طريقة الاستخدام

  1. اختر الاتجاه: نص ← رموز أو رموز ← نص.
  2. في نص ← رموز اكتب في مربع النص. المثال «Café 😀 سلام» موجود مسبقًا، فتظهر النتائج فورًا.
  3. ألغِ خيار «أبقِ ASCII كما هو» لتهريب كل حرف، لا الأحرف غير ASCII فقط.
  4. انسخ الصيغة التي تحتاجها. وتجد مقارنة البايتات وجدول الأحرف في الأسفل.
  5. في رموز ← نص أبقِ «اكتشاف تلقائي» للتهريبات وقيم U+، حتى لو كانت مختلطة، أو اختر صيغة بايتات ست عشرية لقوائم البايتات.
  6. انسخ النص المفكوك بزره.

كيف تعمل

  • النقاط الرمزية تُكتب بـ U+ متبوعة بأرقام ست عشرية كبيرة، تُكمَّل إلى أربعة أرقام على الأقل (U+0041)، وتفصل بينها مسافات.
  • تهريبات JavaScript / JSON تكتب \uXXXX واحدة لكل وحدة UTF-16، فكل ما يبدأ من U+10000 يصبح زوجًا بديلًا. وصيغة ES6 تكتب \u{...} واحدة لكل نقطة رمزية.
  • مراجع HTML تكتب &#x…; أو &#…; واحدًا لكل نقطة رمزية.
  • أبقِ ASCII كما هو يترك أحرف ASCII القابلة للطباعة (U+0020 إلى U+007E) دون تغيير، عدا الشرطة المائلة العكسية (في JavaScript) و& < > “ ’ (في HTML)، كي يُفك الناتج دون لبس. أما فواصل الأسطر وعلامات الجدولة فتُهرَّب دائمًا.
  • بايتات UTF-8 تأتي من TextEncoder في المتصفح. وUTF-16 يكتب بايتين لكل وحدة، البايت الأعلى أولًا (big-endian).
  • EUC-KR (CP949): يُبنى جدول بحث عكسي بفك كل زوج بايتات (البايت الأول من 0x81 إلى 0xFE، والثاني من 0x41 إلى 0xFE) بفاك EUC-KR في المتصفح، وحرف ASCII بايت واحد. كل المقاطع الكورية الـ 11,172 من 가 إلى 힣 تأخذ بايتين: 2,350 من KS X 1001 و8,822 من امتداد CP949 (UHC)، وتُكمَّل الأخيرة وفق تخطيط CP949 إذا كان الفاك لا يعرف إلا KS X 1001. ولا توجد الحروف العربية في هذا الترميز.
  • الأحرف المرئية هي عناقيد الحروف من Intl.Segmenter في المتصفح (الملحق 29 لمعيار يونيكود). وللجدول صف لكل نقطة رمزية، ويميّز الأحرف المكونة من عدة نقاط رمزية، ويعرض أول 200.
  • الفك: قيم U+ تأخذ من 4 إلى 8 أرقام ست عشرية، والمسافات أو الفواصل بينها تُعامل كفواصل. والقيم الأكبر من U+10FFFF والبدائل غير المقترنة يُبلَّغ عنها مع موضع الحرف. وإدخال البايتات يتجاهل المسافات والفواصل والنقطتين والشرطات والبادئات 0x و\x و%، ويُبلَّغ عن UTF-8 غير الصالح مع موضع البايت.
  • الحد الأقصى للإدخال 20,000 حرف.

أمثلة

النص النقطة الرمزية JavaScript بايتات UTF-8 UTF-8 / UTF-16 / EUC-KR
A U+0041 A (أو A عند إلغاء خيار ASCII) 41 1 / 2 / 1 بايت
é U+00E9 é C3 A9 2 / 2 / غير قابل للترميز
س U+0633 س D8 B3 2 / 2 / غير قابل للترميز
中 U+4E2D 中 E4 B8 AD 3 / 2 / 2 بايت
한 U+D55C 한 ED 95 9C 3 / 2 / 2 بايت
😀 U+1F600 😀 F0 9F 98 80 4 / 4 / غير قابل للترميز

المثال الافتراضي «Café 😀 سلام» فيه 11 حرفًا مرئيًا و11 نقطة رمزية، وطوله في UTF-16 هو 12. ويأخذ 19 بايت في UTF-8 و24 في UTF-16، و5 بايتات فقط في EUC-KR، لأن ستة أحرف منه (é والإيموجي وحروف «سلام» الأربعة) لا يمكن تمثيلها فيه.

وفي الاتجاه المعاكس، يحوّل الاكتشاف التلقائي Café &#x1F600; U+0633 U+0644 U+0627 U+0645 إلى «Café 😀 سلام»، وتُفك بايتات UTF-8 ‏43 61 66 C3 A9 إلى «Café».

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

ما الفرق بين النقطة الرمزية والترميز؟

النقطة الرمزية هي الرقم الذي يمنحه يونيكود للحرف، مثل U+0633 للحرف س. أما الترميز فهو طريقة تخزين هذا الرقم بايتات. فالحرف س نفسه هو D8 B3 في UTF-8 و06 33 في UTF-16، والمقطع الكوري 한 (U+D55C) هو ED 95 9C في UTF-8 لكنه C7 D1 في الترميز الكوري القديم EUC-KR.

لماذا يتحول الإيموجي إلى تهريبين \uXXXX؟

سلاسل JavaScript وJSON مكونة من وحدات UTF-16. والأحرف التي تتجاوز U+FFFF تحتاج وحدتين تسميان زوجًا بديلًا (surrogate pair)، لذا يُكتب 😀 (U+1F600) على شكل 😀. أما صيغة ES6 \u{1F600} فتسمّي النقطة الرمزية مباشرة، فتكفيها تهريبة واحدة.

لماذا يُعدّ الإيموجي الواحد عدة نقاط رمزية؟

كثير من الإيموجي تسلسلات. إيموجي العائلة ثلاثة إيموجي أشخاص يربط بينها رابطا عرض صفري (U+200D)، فهو حرف مرئي واحد لكنه خمس نقاط رمزية وثماني وحدات UTF-16 و18 بايت UTF-8. وكذلك ألوان البشرة والأعلام والنص الكوري المفكك، ولهذا يعرض الملخص الأعداد الثلاثة.

ماذا يعني «لا يمكن كتابتها بـ EUC-KR»؟

EUC-KR (CP949) ترميز كوري قديم يغطي الهانغول والهانجا ومجموعة من الرموز، لكنه لا يغطي الحروف العربية ولا الإيموجي ولا حروفًا مثل é. هذه الأحرف تُستبعد من مجموع بايتات EUC-KR وتُعدّ على حدة. وإذا لم يكن في متصفحك فاكّ ترميز EUC-KR، يُخفى هذا الرقم.

هل يُرسل نصي إلى أي مكان؟

لا. كل تحويل يجري في متصفحك، ولا يُحفظ شيء مما تكتبه ولا يُرفع.

لم تجد الأداة التي تبحث عنها؟