String.fromCharCode()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Die statische Methode String.fromCharCode()
gibt einen String zurück, der aus der angegebenen Sequenz von UTF-16-Code-Einheiten erstellt wurde.
Probieren Sie es aus
Syntax
String.fromCharCode()
String.fromCharCode(num1)
String.fromCharCode(num1, num2)
String.fromCharCode(num1, num2, /* …, */ numN)
Parameter
num1
, …,numN
-
Eine Zahl zwischen
0
und65535
(0xFFFF
), die eine UTF-16-Code-Einheit darstellt. Zahlen größer als0xFFFF
werden auf die letzten 16 Bits gekürzt. Es werden keine Gültigkeitsprüfungen durchgeführt.
Rückgabewert
Ein String der Länge N
, bestehend aus den N
angegebenen UTF-16-Code-Einheiten.
Beschreibung
Da fromCharCode()
eine statische Methode von String
ist, verwenden Sie sie immer als String.fromCharCode()
, anstatt als Methode eines von Ihnen erstellten String
-Werts.
Unicode-Codepunkte reichen von 0
bis 1114111
(0x10FFFF
). charCodeAt()
gibt immer einen Wert zurück, der kleiner als 65536
ist, da die höheren Codepunkte durch ein Paar aus 16-Bit-Surrogat-Pseudo-Zeichen dargestellt werden. Daher ist es notwendig, zwei Code-Einheiten anzugeben (als ob man einen String mit zwei Zeichen manipuliert), um ein vollständiges Zeichen mit einem Wert größer als 65535
zu erzeugen. Weitere Informationen zu Unicode finden Sie unter UTF-16-Zeichen, Unicode-Codepunkte und Graphemcluster.
Da fromCharCode()
nur mit 16-Bit-Werten (wie die \u
Escape-Sequenz) arbeitet, ist ein Surrogatpaar erforderlich, um ein zusätzliches Zeichen zurückzugeben. Zum Beispiel geben sowohl String.fromCharCode(0xd83c, 0xdf03)
als auch "\ud83c\udf03"
den Codepunkt U+1F303
"Night with Stars" zurück. Während es eine mathematische Beziehung zwischen dem zusätzlichen Codepunktwert (z.B. 0x1f303
) und beiden Surrogatwerten gibt, die ihn darstellen (z.B. 0xd83c
und 0xdf03
), erfordert es dennoch einen zusätzlichen Schritt, um jedes Mal die Surrogatpaarwerte entweder zu berechnen oder nachzuschlagen, wenn ein zusätzlicher Codepunkt verwendet werden soll. Aus diesem Grund ist es bequemer, String.fromCodePoint()
zu verwenden, die es erlaubt, zusätzliche Zeichen basierend auf ihrem tatsächlichen Codepunktwert zurückzugeben. Zum Beispiel gibt String.fromCodePoint(0x1f303)
den Codepunkt U+1F303
"Night with Stars" zurück.
Beispiele
Verwendung von fromCharCode()
BMP-Zeichen, in UTF-16, verwenden eine einzelne Code-Einheit:
String.fromCharCode(65, 66, 67); // returns "ABC"
String.fromCharCode(0x2014); // returns "—"
String.fromCharCode(0x12014); // also returns "—"; the digit 1 is truncated and ignored
String.fromCharCode(8212); // also returns "—"; 8212 is the decimal form of 0x2014
Zusätzliche Zeichen, in UTF-16, erfordern zwei Code-Einheiten (d.h. ein Surrogatpaar):
String.fromCharCode(0xd83c, 0xdf03); // Code Point U+1F303 "Night with
String.fromCharCode(55356, 57091); // Stars" === "\uD83C\uDF03"
String.fromCharCode(0xd834, 0xdf06, 0x61, 0xd834, 0xdf07); // "\uD834\uDF06a\uD834\uDF07"
Spezifikationen
Specification |
---|
ECMAScript Language Specification # sec-string.fromcharcode |
Browser-Kompatibilität
BCD tables only load in the browser