Javascriptで文字のUnicode(UTF-16)を取得する方法【charCodeAtとfromCharCode】
投稿日:
このページにはGoogleアドセンス広告とアフィリエイト広告が含まれています。
テキストのUnicode(UTF-16)を取得するには?
Javascriptを使うと、日本語(テキスト)のUnicode(UTF-16)を取得したり、Unicode(UTF-16)をテキストに変換することが可能です。
下のフォームはJavascriptで作成したテキストとUnicode(UTF-16)の変換フォームです。左上のテキストボックスに文字を入力し「変換」を押せばUnicode(UTF-16)が取得できます。反対に右下のボックスに入力して変換を押せばテキストに変換できます。
テキスト | Unicode(UTF-16) | |
---|---|---|
テキスト | Unicode(UTF-16) | |
ここからは、上のフォームのような取得変換処理を作る方法を解説していきます。
charCodeAtでテキストのUnicode(UTF-16)を取得する
まずはテキストをUnicode(UTF-16)に変換する方法です。取得には「charCodeAt」メソッドを使用します。
charCodeAtは次のように記述することでテキストのUnicode(UTF-16)を返します。
Javascript
var text = "本"; var result = text.charCodeAt(); console.log(result);//「本」のUnicode(UTF-16)は26412
charCodeAtが変換できるのは1文字のみです。対象のテキストが2文字以上の場合は、引数を入力することで何番目の文字を変換するか指定できます。(引数を記述しない場合は最初の文字を変換します)
Javascript
var text = "日本語"; var result = text.charCodeAt(2);//頭文字を0番目として2番目を変換 console.log(result);//「語」のUnicode(UTF-16)は35486
2文字以上のテキストを一括で変換させたい場合はループを用いて一文字づつ変換する処理を作ります。
Javascript
var text = "日本語"; var array = [];//変換したUnicode(UTF-16)を収める用の配列 for(var n = 0;n < text.length; n++){ array[n] = text.charCodeAt(n);//一文字づつ変換して配列に収めていく } var result = array.join(",");//Unicode(UTF-16)を収めた配列をカンマ区切りの文字列にする console.log(result);//「日本語」のUnicode(UTF-16)は26085,26412,35486
fromCharCodeでUnicode(UTF-16)をテキストに変換する
続いては反対にUnicode(UTF-16)をテキストに変換する方法です。Unicode(UTF-16)からテキストへの変換は「fromCharCode」メソッドを使用します。
fromCharCodeは次のように記述することでUnicode(UTF-16)に該当するテキストを返します。
Javascript
var num = "26412"; var result = String.fromCharCode(num); console.log(result);//「26412」は「本」
fromCharCodeも一文字単位ごとにしか変換できないため、冒頭のフォームのようにカンマ区切りのUnicode(UTF-16)を一括でテキストに変換したい場合はループを用いて処理を作ります。
Javascript
var num = "26085,26412,35486"; var numArr = num.split(",");//Unicode(UTF-16)をカンマ区切りで配列に変換 var txtArr = [];//変換後の文字を収める用の配列 for(var n = 0; n < numArr.length; n++){ txtArr[n] = String.fromCharCode(numArr[n]);//一文字づつ変換して配列に収める } var result = txtArr.join("");//テキストを収めた配列を文字列に変換 console.log(result);//「26085,26412,35486」は「日本語」
まとめ
以上がJavascriptのcharCodeAtとfromCharCodeを使ってテキストとUnicode(UTF-16)の変換を行う方法です。
Webサービスなどでデータ処理を行う際などに役に立つかもしれませんので是非覚えておいてください。