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 eine Zeichenkette zurück, die aus der angegebenen Sequenz von UTF-16-Code-Einheiten erstellt wurde.
Probieren Sie es aus
console.log(String.fromCharCode(189, 43, 190, 61));
// Expected output: "½+¾="
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 verkürzt. Es werden keine Gültigkeitsprüfungen durchgeführt.
Rückgabewert
Eine Zeichenkette 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()
und nicht als Methode eines 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 von 16-Bit-Surrogat-Pseudozeichen dargestellt werden. Daher ist es notwendig, um ein vollständiges Zeichen mit einem Wert größer als 65535
zu erzeugen, zwei Code-Einheiten bereitzustellen (so, als würde eine Zeichenkette mit zwei Zeichen manipuliert). Weitere Informationen zu Unicode finden Sie unter UTF-16-Zeichen, Unicode-Codepunkte und Graphem-Cluster.
Da fromCharCode()
nur mit 16-Bit-Werten arbeitet (wie die \u
-Escape-Sequenz), wird ein Surrogat-Paar benötigt, um ein zusätzliches Zeichen zurückzugeben. Beispielsweise geben sowohl String.fromCharCode(0xd83c, 0xdf03)
als auch "\ud83c\udf03"
den Codepunkt U+1F303
"Nacht mit Sternen" zurück. Obwohl es eine mathematische Beziehung zwischen dem zusätzlichen Codepunktwert (z. B. 0x1f303
) und beiden Surrogat-Werten gibt, die ihn darstellen (z. B. 0xd83c
und 0xdf03
), erfordert dies dennoch einen zusätzlichen Schritt, um die Surrogat-Paar-Werte jedes Mal zu berechnen oder nachzuschlagen, wenn ein zusätzlicher Codepunkt verwendet werden soll. Aus diesem Grund ist es bequemer, String.fromCodePoint()
zu verwenden, das es erlaubt, zusätzliche Zeichen basierend auf ihren tatsächlichen Codepunktwerten zurückzugeben. Zum Beispiel gibt String.fromCodePoint(0x1f303)
den Codepunkt U+1F303
"Nacht mit Sternen" zurück.
Beispiele
Verwendung von fromCharCode()
BMP-Zeichen verwenden in UTF-16 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 erfordern in UTF-16 zwei Code-Einheiten (d. h. ein Surrogat-Paar):
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® 2025 Language Specification # sec-string.fromcharcode |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
fromCharCode |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support