にせねこメモ

はてなダイアリーがUTF-8じゃないので移ってきました。

ブラウザ上で文字列のUnicode Code Pointを調べる

時々文字列を見てその素性を調べたいことがある。とりあえず文字のUnicodeコードポイントが分かれば色々と調べることもできるのだが、案外そういったものが見つからず不便だった(探し方が悪いのかもしれない)。
ブラウザでできたらいいなあと思ったのでJavascriptで作ってみた。ブックマークレットとして動くはず。

Firefox だとTwitterとか一部のサイト(Content Security Policyが設定されたサイト)でブックマークレットを実行するには設定を変える必要があるらしい。

使い方

ブラウザでコードポイントを調べたい文字列を選択し、ブックマークレットかなんやらで実行する。

出力先によって2つのコードを用意したので好きなほうを使う。

コード

alert 版

(function(){s="";[...document.getSelection().toString()].forEach(function(v,i,a){s+=v+": U+"+v.codePointAt(0).toString(16)+"; "});alert(s);})();

ブックマークレット登録用リンク: CodePointInspector(alert)

console.log 版

[...document.getSelection().toString()].forEach(function(v,i,a){console.log(v+": U+"+v.codePointAt(0).toString(16));});

ブックマークレット登録用リンク: CodePointInspector(console)

何をやっているのか

console.log 版の方を冗長に書くとこんな感じになる。alert版も大体同じ。

選択した文字列 = document.getSelection().toString();
一文字毎の配列 = [...選択した文字列];
forEachに渡す関数 = function(文字, インデックス, 元の配列){
    コードポイント = 文字.codePointAt(0);
    コードポイントの16進数 = コードポイント.toString(16);
    出力 = 文字 + ": U+" + コードポイントの16進数;
    console.log(出力);
}
一文字毎の配列.forEach(forEachに渡す関数);

日本語変数名キモいですが一応ちゃんと動きます。