JavaScriptの「.charCodeAt()」とUnicodeについて簡単なサンプルコードで解説

5 回閲覧されました
みなさんこんにちは、jonioです。
今回はJavaScriptの「.charCodeAt()」とUnicodeについて簡単なサンプルコードで解説します。
Laravelの無料学習サイトを作りました
Laravelを勉強したい人向けの無料の学習サイトを作りました。
ここからリンクに飛べますのでぜひ利用してください。
UnicodeとUTF-16とは
「.charCodeAt()」を理解する上でUnicodeを理解しないといけないのでまずはこれの解説をします。
Unicodeとは、世界中の文字(日本語・英語・中国語・絵文字など)を1つの共通ルールで管理するための文字コードの仕組みです。
昔は、国や言語ごとにバラバラなルール(Shift_JIS、ASCII、EUCなど)が使われていたため、文字化けがよく起きました。
文字化けが起きたらダメなのでどんな文字でも使えるようにする為色んな国の文字を統一してすべての文字に一意な番号(コードポイント)を割り当てることを目的としてUnicodeが登場しました。
UTF-16やUTF-8などがありますがUTF-16はUnicodeの文字コードを16バイト(2bit)で表現するという意味でUTF-8は8バイト(1bit)で表現するという意味です。
具体的な文字で説明すると「あ」はUnicodeの文字コードでは「U+3042」になりUTF-16では「0x3042」になります。
.charCodeAt()とは
JavaScriptでの文字列は内部的にUTF-16で保存されています。
「.charCodeAt()」は文字列の指定した位置(インデックス番号)にある文字のUTF-16に該当するUnicodeを10進数に変換して返します。
サンプルコードは下記になります。
const text = "こんにちは";
for (let i = 0; i < text.length; i++) {
console.log(`「${text[i]}」のコードは ${text.charCodeAt(i)}`);
}結果は下記になります。
「こ」のコードは 12371
「ん」のコードは 12435
「に」のコードは 12395
「ち」のコードは 12385
「は」のコードは 12399