محول يونيكود — النقاط الرمزية وبايتات 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-8 | UTF-16 | عشري | الحرف المرئي |
|---|---|---|---|---|---|
| C | U+0043 | 43 | 0043 | 67 | 1 |
| a | U+0061 | 61 | 0061 | 97 | 2 |
| f | U+0066 | 66 | 0066 | 102 | 3 |
| é | U+00E9 | C3 A9 | 00E9 | 233 | 4 |
| (غير مرئي) | U+0020 | 20 | 0020 | 32 | 5 |
| 😀 | U+1F600 | F0 9F 98 80 | D83D DE00 | 128512 | 6 |
| (غير مرئي) | U+0020 | 20 | 0020 | 32 | 7 |
| س | U+0633 | D8 B3 | 0633 | 1587 | 8 |
| ل | U+0644 | D9 84 | 0644 | 1604 | 9 |
| ا | U+0627 | D8 A7 | 0627 | 1575 | 10 |
| م | U+0645 | D9 85 | 0645 | 1605 | 11 |
ما هي الأداة
اكتب نصًا فتحصل على كل الصيغ الشائعة دفعة واحدة، ولكل منها زر نسخ: نقاط يونيكود الرمزية، وتهريبات JavaScript وJSON، وصيغة ES6، ومراجع HTML الست عشرية والعشرية، وبايتات UTF-8 وUTF-16BE الخام. استخدمها لإدخال نص غير ASCII، كالنص العربي، في الشيفرة المصدرية بأمان، أو لقراءة تسلسلات \uXXXX في سجل، أو لمعرفة سبب تحوّل نص إلى رموز مشوهة.
وتقارن الأداة أيضًا عدد البايتات في UTF-8 وUTF-16 والترميز الكوري القديم EUC-KR (CP949)، وتعرض كل نقطة رمزية في جدول. والاتجاه العكسي يحوّل التهريبات أو البايتات الست عشرية إلى نص. كل شيء يجري في متصفحك ولا يُحفظ شيء.
طريقة الاستخدام
- اختر الاتجاه: نص ← رموز أو رموز ← نص.
- في نص ← رموز اكتب في مربع النص. المثال «Café 😀 سلام» موجود مسبقًا، فتظهر النتائج فورًا.
- ألغِ خيار «أبقِ ASCII كما هو» لتهريب كل حرف، لا الأحرف غير ASCII فقط.
- انسخ الصيغة التي تحتاجها. وتجد مقارنة البايتات وجدول الأحرف في الأسفل.
- في رموز ← نص أبقِ «اكتشاف تلقائي» للتهريبات وقيم U+، حتى لو كانت مختلطة، أو اختر صيغة بايتات ست عشرية لقوائم البايتات.
- انسخ النص المفكوك بزره.
كيف تعمل
- النقاط الرمزية تُكتب بـ 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é 😀 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، يُخفى هذا الرقم.
هل يُرسل نصي إلى أي مكان؟
لا. كل تحويل يجري في متصفحك، ولا يُحفظ شيء مما تكتبه ولا يُرفع.