yn2011's blog

技術メモ

bashでUnicodeコードポイントから文字を表示する方法まとめ

シェル芸に取り組んでいるとUnicodeコードポイントを操作して文字を表示させることが多いのでまとめ。

環境

\uを利用する方法

  • こんな感じのこと
$ echo -e \\u3043
ぃ

数値文字参照を利用する方法

  • こういう方法もある
$ echo 'ぃ' | nkf --numchar-input
ぃ
  • 複数行に並べられたコードポイントを一括で文字に変換するときは便利かも?
$ for c in $(seq 0x3042 0x3050); do printf "&#x%x;\n" $c; done | nkf --numchar-input
あ
ぃ
い
ぅ
う
...(略)
  • 数値文字参照は、文字参照の1つ
    • 詳細はこちら文字参照 - Wikipedia
    • HTMLで<&lt;と表記する方法は文字実体参照と呼ぶとのこと(Dom Based XSSの回避策としても利用されるので、名前は知らなくても見覚えのある人は多そう)
  • 10進数の場合は&#;で、16進数の場合は&#x;文字集合のコードポイントを表記する