Punycode
Veraltet seit: v7.0.0
[Stabil: 0 - Veraltet]
Stabil: 0 Stabilität: 0 - Veraltet
Quellcode: lib/punycode.js
Die im Node.js-Paket enthaltene Version des Moduls punycode
wird als veraltet markiert. In einer zukünftigen Hauptversion von Node.js wird dieses Modul entfernt. Benutzer, die derzeit vom Modul punycode
abhängig sind, sollten stattdessen zum von Benutzern bereitgestellten Modul Punycode.js wechseln. Für die Punycode-basierte URL-Kodierung siehe url.domainToASCII
oder allgemeiner die WHATWG URL API.
Das Modul punycode
ist eine gebündelte Version des Moduls Punycode.js. Der Zugriff erfolgt über:
const punycode = require('node:punycode');
Punycode ist ein Zeichenkodierungsschema, das durch RFC 3492 definiert ist und hauptsächlich für die Verwendung in internationalisierten Domainnamen vorgesehen ist. Da Hostnamen in URLs auf ASCII-Zeichen beschränkt sind, müssen Domainnamen, die Nicht-ASCII-Zeichen enthalten, mit dem Punycode-Schema in ASCII konvertiert werden. Beispielsweise ist das japanische Zeichen, das sich ins Englische mit dem Wort 'example'
übersetzt, '例'
. Der internationalisierte Domainname '例.com'
(entspricht 'example.com'
) wird durch Punycode als ASCII-Zeichenkette 'xn--fsq.com'
dargestellt.
Das Modul punycode
bietet eine einfache Implementierung des Punycode-Standards.
Das Modul punycode
ist eine Drittanbieter-Abhängigkeit, die von Node.js verwendet und Entwicklern als Komfortfunktion zur Verfügung gestellt wird. Fehlerbehebungen oder andere Änderungen am Modul müssen an das Projekt Punycode.js gerichtet werden.
punycode.decode(string)
Hinzugefügt in: v0.5.1
string
<string>
Die Methode punycode.decode()
konvertiert eine Punycode-Zeichenkette, die nur ASCII-Zeichen enthält, in die äquivalente Zeichenkette von Unicode-Codepunkten.
punycode.decode('maana-pta'); // 'mañana'
punycode.decode('--dqo34k'); // '☃-⌘'
punycode.encode(string)
Hinzugefügt in: v0.5.1
string
<string>
Die Methode punycode.encode()
konvertiert einen String von Unicode-Codepunkten in einen Punycode-String mit Nur-ASCII-Zeichen.
punycode.encode('mañana'); // 'maana-pta'
punycode.encode('☃-⌘'); // '--dqo34k'
punycode.toASCII(domain)
Hinzugefügt in: v0.6.1
domain
<string>
Die Methode punycode.toASCII()
konvertiert einen Unicode-String, der einen Internationalisierten Domainnamen darstellt, in Punycode. Nur die Nicht-ASCII-Teile des Domainnamens werden konvertiert. Der Aufruf von punycode.toASCII()
auf einem String, der bereits nur ASCII-Zeichen enthält, hat keine Auswirkung.
// Domainnamen kodieren
punycode.toASCII('mañana.com'); // 'xn--maana-pta.com'
punycode.toASCII('☃-⌘.com'); // 'xn----dqo34k.com'
punycode.toASCII('example.com'); // 'example.com'
punycode.toUnicode(domain)
Hinzugefügt in: v0.6.1
domain
<string>
Die Methode punycode.toUnicode()
konvertiert einen String, der einen Domainnamen mit Punycode-kodierten Zeichen enthält, in Unicode. Nur die Punycode-kodierten Teile des Domainnamens werden konvertiert.
// Domainnamen dekodieren
punycode.toUnicode('xn--maana-pta.com'); // 'mañana.com'
punycode.toUnicode('xn----dqo34k.com'); // '☃-⌘.com'
punycode.toUnicode('example.com'); // 'example.com'
punycode.ucs2
Hinzugefügt in: v0.7.0
punycode.ucs2.decode(string)
Hinzugefügt in: v0.7.0
string
<string>
Die Methode punycode.ucs2.decode()
gibt ein Array zurück, das die numerischen Codepunktwerte jedes Unicode-Symbols im String enthält.
punycode.ucs2.decode('abc'); // [0x61, 0x62, 0x63]
// Surrogatpaar für U+1D306 Tetragramm für Zentrum:
punycode.ucs2.decode('\uD834\uDF06'); // [0x1D306]
punycode.ucs2.encode(codePoints)
Hinzugefügt in: v0.7.0
codePoints
<integer[]>
Die Methode punycode.ucs2.encode()
gibt einen String basierend auf einem Array numerischer Codepunktwerte zurück.
punycode.ucs2.encode([0x61, 0x62, 0x63]); // 'abc'
punycode.ucs2.encode([0x1D306]); // '\uD834\uDF06'
punycode.version
Hinzugefügt in: v0.6.1
Gibt eine Zeichenkette zurück, die die aktuelle Versionsnummer von Punycode.js identifiziert.