HOWTO · JavaScript

JavaScript の Unicode

この記事は、JavaScript への Unicode 文字の挿入を理解するのに役立ちます。

この記事は、JavaScript への Unicode 文字の挿入を理解するのに役立ちます。

JavaScript の Unicode

ES2015 仕様によると、ソースコードテキストは Unicode(バージョン 5.1 以降)を使用して表されます。ソーステキストは、U+0000 から U+10FFFF の範囲のコードポイントで構成されています。

ソースコードをどのように保存または交換するかは、ECMAScript 標準にとって重要ではありません。ただし、多くの場合、UTF-8 としてエンコードされます。

JavaScript に Unicode 文字を挿入する方法は 2つあります。Unicode エスケープシーケンスと String.fromCodePoint を使用します。

Unicode エスケープシーケンス

文字列エスケープシーケンスは、コードポイント番号に基づいてコードユニットを伝達します。

JavaScript の 3つのエスケープタイプ:

  1. 16 進エスケープ
  2. Unicode エスケープ
  3. コードポイントエスケープ

Omega を挿入するには、Unicode エスケープシーケンス\u{XXXXXX} を使用して Unicode コードポイントをエスケープできます(X は、U+0000 から U+10FFFF の範囲の 1〜6 桁の 16 進数を示します、完全な Unicode をカバーします)。

たとえば、JavaScript 文字列に Omega、つまり(U+03A9)を挿入するには、次の方法で挿入できます。

const ome = 'Omega: \u{03A9}';
console.log(ome);

実行コード

出力:

"Omega: Ω"

Unicode は、BMP(Basic Multilingual Plane)に含まれていない追加の文字を含むように成長しました。これらの文字はサロゲートペアで表されます。これは、以前のバージョンの JavaScript では直接追加できないコードポイントです。

このような文字を適切に表すには、2つの隣接する Unicode エスケープシーケンスが必要になります。

JavaScript で String.fromCodePoint() を使用する

String.fromCodePoint() 関数を使用して、JavaScript 文字列に Unicode コードポイントを追加できます。入力として一連のコードポイント(10 進数、16 進数、8 進数など)を取ります。

たとえば、10 進コードポイントを使用してオメガを表示します。

const omee = `Omega: ${String.fromCodePoint(937)}`;
console.log(omee);

実行コード

出力:

"Omega: Ω"