8ヶ月前、UTF-8のデコードをするべく我々はジャングルの奥地へと向かったという記事で自力でコードポイントを算出するシェルスクリプトを公開しました。その文中で「(UTFデコード)変換を行ってくれるツールは、Linux標準環境で探した限り見当たらない」と書いていたのですが、これが自分の調査不足であったことがのちの調査で分かりました。形式のエスケープ表記のことです。Quotingと呼ばれます。本記事ではこれら2つの表記をコードポイント表記と呼ぶことにします。(注:コードポイント表記までもが本当にC標準なのかどうかは仕様書を読んでいないのでわかりません。知っている人教えて)例えば以下のように使うことができます。"\U0001f4a9"💩16進数4桁で表せるものは小文字のu、それでは桁が溢れてしまうものは大文字のUを使います。大は小を兼ねるので全部大文字のUにして0埋めしても構いません。なんでこれを例に出したかって?......シェル芸界に蔓延っているから本記事で紹介するシェル芸さて本題です。オプションはいらない)で簡単に変換できますが、逆に「実際の文字→コードポイント表記」は標準環境のコマンド一発ではできないので、これをなんとかするというものです。要件は以下のようにします。しない)文字列でない入力は考慮しない出来上がったものがこちらBashでの実行が必須です。UCS-2変換(\uHHHH)一般にUnicodeのコードポイント表記でおなじみなのはこちらです(筆者談)。emojiでない大抵の文字はこちらに収まります[本当?]。UCS-2の説明からしましょう。現在UnicodeはUTF-8、UTF-16、UTF-32といった様々なバイト長のエンコーディングがありますが、それ以前はUCS-2、UCS-4と呼ばれる「文字⇔固定長コードポイント」の相互マッピングが用いられていたそうです[1]。このUCS-2、UCS-4のコードポイントこそ、一般的にU+HHHHと表記されている16進数部分に相当するものになります(2や4はバイト数を示している)。コマンドが定められています。