JavaScript 文字コードを取得する(charCodeAt)

JavaScriptの文字コードを取得するサンプルです。
charCodeAtメソッドを使用します。

目次

charCodeAtメソッド

変数 = 文字列.charCodeAt(数値);
  • 文字列のうち、引数の位置にある文字コードを返します。
  • 文字コードは、UTF-16コードユニット値を表す整数を返します。ただし取得できる範囲は0から65535までです。その範囲を超える文字(サロゲートペア文字列)の場合は、charCodeAtを2文字分(2回)行います。
  • 似たメソッドのcodePointAtメソッドは、Unicodeコードポイント返します。こちらはサロゲートペア文字列に対応しています。
  • 文字列の最初の1文字目の位置は0です。
  • 引数が範囲外のときは、空文字を返します。
  • 引数がない場合は、1文字目を返します。
  • 以下はMDNのcharCodeAtメソッドのリンクです。
    https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt

コード

charCodeAtメソッドのサンプルです。

<script>
const str1 = "ABあい";

console.log(str1.charCodeAt(0)); // 65

console.log(str1.charCodeAt(1)); // 66

console.log(str1.charCodeAt(2)); // 12354

console.log(str1.charCodeAt(str1.length -1)); // 12356

console.log(str1.charCodeAt()); // 65

console.log(str1.charCodeAt(9)); // NaN


console.log(str1.charCodeAt(0).toString(16)); // 41

console.log(str1.charCodeAt(1).toString(16)); // 42

console.log(str1.charCodeAt(2).toString(16)); // 3042
</script>

4-8行目は、引数の位置にある文字コードを返します。最初の1文字目は0から始まります。
10行目は、最後の文字のコードを取得しています。lengthで文字列の長さを取得して1引きます。
12行目は、引数がない場合です。1文字目のコードを返します。
14行目は、引数が範囲外の場合です。NaNを返します。
17-21行目は、toStringメソッドで16進数にしています。

 

サロゲートペア文字列の場合

サロゲートペア文字列の場合のサンプルです。
2行目は、サロゲートペアの「つちよし」です。

<script>
const str1 = "𠮷";

console.log(str1.charCodeAt(0)); // 55362

console.log(str1.charCodeAt(1)); // 57271

console.log(str1.charCodeAt(2)); // NaN

console.log(str1.charCodeAt(0).toString(16)); // d842

console.log(str1.charCodeAt(1).toString(16)); // dfb7

console.log("\ud842\udfb7");//𠮷


console.log(str1.codePointAt(0).toString(16)); // 20bb7

console.log("\u{20bb7}"); //𠮷

</script>

サロゲートペアの文字列は1つの文字に2つコードが入っています。
4-8行目は、1つの文字に2つコードがあることがわかります。
10,12行目は、toStringメソッドで16進数にしています。
14行目は、10,12行目の文字コードから文字を表示しています。
17行目は、codePointAtメソッドです。戻り値はUnicodeコードポイントです。
19行目は、1つの文字コードのみでサロゲートペアの「つちよし」を表示しています。
10,12行目と17行目の違いは、10,12行目はUTF-16の文字コードで、17行目はUnicodeのUnicodeコードポイントという違いです。14行目と19行目でも表示の仕方が違います。

文字コードは秀丸で確認できます。
確認方法は以下を参照下さい。
秀丸 カーソルで文字コードを表示する方法

関連の記事

JavaScript 文字列を区切り文字で分割する(split)
JavaScript 文字列から文字列の一部を取得する(substring)
JavaScript 文字列から文字列の一部を取得する(slice)
JavaScript 文字列から文字列の一部を取得する(substr)
JavaScript 文字列から1文字を取得する(charAt)
JavaScript Unicodeコードポイントを取得する(codePointAt)

△上に戻る