Skip to content

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:

js
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

Die Methode punycode.decode() konvertiert eine Punycode-Zeichenkette aus reinen ASCII-Zeichen in die entsprechende Zeichenkette von Unicode-Codepoints.

js
punycode.decode('maana-pta') // 'mañana'
punycode.decode('--dqo34k') // '☃-⌘'

punycode.encode(string)

Hinzugefügt in: v0.5.1

Die Methode punycode.encode() konvertiert eine Zeichenkette von Unicode-Codepunkten in eine Punycode-Zeichenkette, die nur aus ASCII-Zeichen besteht.

js
punycode.encode('mañana') // 'maana-pta'
punycode.encode('☃-⌘') // '--dqo34k'

punycode.toASCII(domain)

Hinzugefügt in: v0.6.1

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.

js
// 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

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.

js
// 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

Die Methode punycode.ucs2.decode() gibt ein Array zurück, das die numerischen Codepunktwerte jedes Unicode-Symbols in der Zeichenkette enthält.

js
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

Die Methode punycode.ucs2.encode() gibt eine Zeichenkette basierend auf einem Array von numerischen Codepunktwerten zurück.

js
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.