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.

String.fromCharCode() 静的メソッドは、指定された UTF-16 コード単位の並びから生成された文字列を返します。

試してみましょう

console.log(String.fromCharCode(189, 43, 190, 61));
// Expected output: "½+¾="

構文

js
String.fromCharCode(num1)
String.fromCharCode(num1, num2)
String.fromCharCode(num1, num2, /* …, */ numN)

引数

numN

UTF-16 コード単位を表す数値の並びです。範囲は 0 から 65535 (0xFFFF) までです。数値が 0xFFFF を超えた場合は切り捨てられます。妥当性チェックは行われません。

返値

指定された N 個の UTF-16 コード単位から生成された、長さ N の文字列です。

解説

fromCharCode()String の静的メソッドなので、自分で生成した String オブジェクトのメソッドではなく、常に String.fromCharCode() として使用するようにしてください。

Unicode のコードポイントは 0 から 1114111 (0x10FFFF) までの範囲です。charAt() は常に 65536 より小さい値を返しますが、これは上位のコードポイントは 16 ビットのサロゲート擬似文字のペアによって表されているからです。したがって、65535 より大きい値を持つ完全な文字を取得するには、charAt(i) だけでなく charAt(i + 1) も取得するか(2 つの文字を持つ文字列を操作する場合と同じです)、または codePointAt(i)String.fromCodePoint() を使用する必要があります。Unicode に関する情報はUTF-16 文字、Unicode コードポイント、書記素クラスターを参照してください。

fromCharCode() は 16 ビット値のみで動作するため(\u エスケープシーケンスと同様)、補助文字を返すためにはサロゲートペアが必要です。例えば、String.fromCharCode(0xD83C, 0xDF03)\uD83C\uDF03 はコードポイント U+1F303 "Night with Stars" です。補助コードポイントの値(例: 0x1f303)とそれを表す両方のサロゲート値(例: 0xd83c0xdf03)との間には数学的な関係がありますが、補助コードポイントを使用するたびにサロゲートペアの値を計算したり参照したりする、余分なステップが必要になります。このため、実際のコードポイント値に基づいて補助文字を返すことができる String.fromCodePoint() を使用した方が便利です。例えば、 String.fromCodePoint(0x1f303) はコードポイント U+1F303 "Night with Stars" を返します。

fromCharCode() の使用

BMP 文字は、 UTF-16 では単一のコード単位を使用します。

js
String.fromCharCode(65, 66, 67); // "ABC" を返す
String.fromCharCode(0x2014); // "—" を返す
String.fromCharCode(0x12014); // これも "—" を返す。1 の桁は削除され無視される
String.fromCharCode(8212); // これも "—" を返す。8212 は 0x2014 の 10 進数形

補助文字は、 UTF-16 では、 2 つのコード単位(すなわちサロゲートペア)を必要とします。

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

仕様書

Specification
ECMAScript® 2025 Language Specification
# sec-string.fromcharcode

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
fromCharCode

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

関連情報