DTPab

印刷やデザイン、アドビ製アプリやスクリプトなど、雑多な技術ブログ

選択した文字の文字コードをInDesign風表記に変換する

今回は前回の続き、というか、蛇足になります。

InDesignで文字のUnicodeUTF-16コードポイントを調べる際、情報パネルを参照するのがセオリーだと思います。でもそれを正規表現として検索置換パネルに入力したいときや、正規表現スタイルの入力時に、該当の文字を選択してわざわざ情報パネルを開くのは煩わしいです(当然、別のアプリケーション、例えばエディタ等にコピペして調べるのも面倒くさいw)。

こういうときに、僕は以前紹介したClipMenuを使っています。
下記のような短いマクロを使うだけで、InDesign用にカスタマイズしたUnicode表記(\x{0000}という形式)に変換します。

var temp = "";
for (var i=0; i<clipText.length; i++){
    temp += "\\x{" + parseInt(clipText.charCodeAt(i),10).toString(16) + "}";
    }
return temp;

これなら、例えば正規表現スタイル編集中にも以下のように簡単にUnicodeを記述できます。

f:id:uske_S:20170614175400g:plain

作業としては、コピー、ClipMenuを起動、マクロ実行、ペースト、です。最終的にはこれをブラケットで囲んであげれば、簡単に文字クラスとして指定できます。

どうぞお試しください。
以上、短いですが前回記事の蛇足でした。

補足

ものかのさんよりご指摘頂きました。ありがとうございます。
このマクロはJavaScriptのcharCodeAtメソッドを利用しています*1。それがつまりどういうことかというと、サロゲートペアや一部の絵文字などに使用すると、正しいコードポイントを取得できないということです。具体的には以下のようになります。

f:id:uske_S:20170614194636g:plain

(ちなみに、本当の吉野ヶ里遺跡は普通の「吉」です^^;;)
このあたりはいずれ折を見て解決したいと思っていますが、それまではくれぐれもご注意の上お使いください。

*1:charCodeAtメソッドについて詳しくはこちらなどをご参照ください。

developer.mozilla.org