Punycode
Veraltet seit: v7.0.0
[Stabil: 0 - Veraltet]
Stabil: 0 Stabilität: 0 - Veraltet
Quellcode: lib/punycode.js
Die Version des in Node.js gebündelten Punycode-Moduls ist veraltet. In einer zukünftigen Hauptversion von Node.js wird dieses Modul entfernt. Benutzer, die derzeit vom punycode
-Modul abhängen, sollten stattdessen auf das vom Benutzer bereitgestellte Punycode.js-Modul umsteigen. Informationen zur Punycode-basierten URL-Kodierung finden Sie unter url.domainToASCII
oder allgemeiner unter der WHATWG URL API.
Das punycode
-Modul ist eine gebündelte Version des Punycode.js-Moduls. Es kann wie folgt zugegriffen werden:
const punycode = require('node:punycode')
Punycode ist ein Zeichenkodierungsschema, das in RFC 3492 definiert ist und primär 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, mithilfe des Punycode-Schemas in ASCII konvertiert werden. Beispielsweise ist das japanische Zeichen, das in das englische Wort 'example'
übersetzt wird, '例'
. Der Internationalisierte Domainname '例.com'
(entspricht 'example.com'
) wird durch Punycode als die ASCII-Zeichenkette 'xn--fsq.com'
dargestellt.
Das punycode
-Modul bietet eine einfache Implementierung des Punycode-Standards.
Das punycode
-Modul ist eine Drittanbieter-Abhängigkeit, die von Node.js verwendet und Entwicklern als Komfortfunktion zur Verfügung gestellt wird. Korrekturen oder andere Änderungen am Modul müssen an das Punycode.js-Projekt gerichtet werden.
punycode.decode(string)
Hinzugefügt in: v0.5.1
string
<string>
Die Methode punycode.decode()
konvertiert eine Punycode-Zeichenkette aus reinen ASCII-Zeichen in die entsprechende Zeichenkette von Unicode-Codepoints.
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 eine Zeichenkette von Unicode-Codepunkten in eine Punycode-Zeichenkette, die nur aus ASCII-Zeichen besteht.
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 eine Unicode-Zeichenkette, die einen Internationalisierten Domainnamen darstellt, in Punycode. Es werden nur die Nicht-ASCII-Teile des Domainnamens konvertiert. Der Aufruf von punycode.toASCII()
auf einer Zeichenkette, die 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 eine Zeichenkette, die einen Domainnamen enthält, der Punycode-kodierte Zeichen enthält, in Unicode. Es werden nur die Punycode-kodierten Teile des Domainnamens 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 in der Zeichenkette 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 eine Zeichenkette basierend auf einem Array von numerischen Codepunktwerten 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.