Punycode
مهمل منذ: الإصدار v7.0.0
كود المصدر: lib/punycode.js
نسخة وحدة punycode المجمعة في Node.js مهملة. في إصدار رئيسي مستقبلي من Node.js ستتم إزالة هذه الوحدة. يجب على المستخدمين الذين يعتمدون حاليًا على وحدة punycode
التبديل إلى استخدام وحدة Punycode.js المقدمة من طرف المستخدم بدلاً من ذلك. لترميز URL المستند إلى punycode، انظر url.domainToASCII
أو بشكل عام WHATWG URL API.
وحدة punycode
هي نسخة مجمعة من وحدة Punycode.js. يمكن الوصول إليها باستخدام:
const punycode = require('node:punycode');
Punycode هو نظام ترميز أحرف معرف بواسطة RFC 3492 وهو مخصص بشكل أساسي للاستخدام في أسماء النطاقات الدولية. نظرًا لأن أسماء المضيفين في عناوين URL تقتصر على أحرف ASCII فقط، يجب تحويل أسماء النطاقات التي تحتوي على أحرف غير ASCII إلى ASCII باستخدام نظام Punycode. على سبيل المثال، الحرف الياباني الذي يُترجم إلى الكلمة الإنجليزية، 'example'
هو '例'
. اسم النطاق الدولي '例.com'
(المكافئ لـ 'example.com'
) ممثل بواسطة Punycode كسلسلة ASCII 'xn--fsq.com'
.
توفر وحدة punycode
تطبيقًا بسيطًا لمعيار Punycode.
وحدة punycode
هي تبعية تابعة لجهة خارجية تستخدمها Node.js ومتاحة للمطورين كراحة. يجب توجيه الإصلاحات أو التعديلات الأخرى للوحدة إلى مشروع Punycode.js.
punycode.decode(string)
أضيف في: الإصدار v0.5.1
string
<string>
تقوم طريقة punycode.decode()
بتحويل سلسلة Punycode المكونة من أحرف ASCII فقط إلى السلسلة المكافئة لنقاط رمز Unicode.
punycode.decode('maana-pta'); // 'mañana'
punycode.decode('--dqo34k'); // '☃-⌘'
punycode.encode(string)
أُضيف في: الإصدار v0.5.1
string
<string>
تقوم الدالة punycode.encode()
بتحويل سلسلة من نقاط الترميز Unicode إلى سلسلة Punycode تحتوي على أحرف ASCII فقط.
punycode.encode('mañana'); // 'maana-pta'
punycode.encode('☃-⌘'); // '--dqo34k'
punycode.toASCII(domain)
أُضيف في: الإصدار v0.6.1
domain
<string>
تقوم الدالة punycode.toASCII()
بتحويل سلسلة Unicode تمثل اسم نطاق دولي (Internationalized Domain Name) إلى Punycode. سيتم تحويل الأجزاء غير ASCII فقط من اسم النطاق. استدعاء punycode.toASCII()
على سلسلة تحتوي بالفعل على أحرف ASCII فقط لن يكون له أي تأثير.
// encode domain names
punycode.toASCII('mañana.com'); // 'xn--maana-pta.com'
punycode.toASCII('☃-⌘.com'); // 'xn----dqo34k.com'
punycode.toASCII('example.com'); // 'example.com'
punycode.toUnicode(domain)
أُضيف في: الإصدار v0.6.1
domain
<string>
تقوم الدالة punycode.toUnicode()
بتحويل سلسلة تمثل اسم نطاق يحتوي على أحرف مشفرة بـ Punycode إلى Unicode. سيتم تحويل الأجزاء المشفرة بـ Punycode فقط من اسم النطاق.
// decode domain names
punycode.toUnicode('xn--maana-pta.com'); // 'mañana.com'
punycode.toUnicode('xn----dqo34k.com'); // '☃-⌘.com'
punycode.toUnicode('example.com'); // 'example.com'
punycode.ucs2
أُضيف في: الإصدار v0.7.0
punycode.ucs2.decode(string)
أُضيف في: الإصدار v0.7.0
string
<string>
تقوم الدالة punycode.ucs2.decode()
بإرجاع مصفوفة تحتوي على قيم نقاط الترميز الرقمية لكل رمز Unicode في السلسلة.
punycode.ucs2.decode('abc'); // [0x61, 0x62, 0x63]
// surrogate pair for U+1D306 tetragram for centre:
punycode.ucs2.decode('\uD834\uDF06'); // [0x1D306]
punycode.ucs2.encode(codePoints)
تمت الإضافة في: v0.7.0
codePoints
<integer[]>
تقوم الطريقة punycode.ucs2.encode()
بإرجاع سلسلة نصية بناءً على مصفوفة من قيم نقاط الترميز الرقمية.
punycode.ucs2.encode([0x61, 0x62, 0x63]); // 'abc'
punycode.ucs2.encode([0x1D306]); // '\uD834\uDF06'
punycode.version
تمت الإضافة في: v0.6.1
إرجاع سلسلة نصية تحدد رقم الإصدار الحالي لـ Punycode.js.