コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

Rubyの場合、Unicodeのコードポイントをバックスラッシュuで記述してダブルコーテーションで囲むと該当文字列に展開してくれる

なるほどと思ったので

環境

$ ruby -v
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin18]
ip-192-168-101-58:duck 00048takada$ irb

実例

Unicode一覧 0000-0FFF - Wikipedia によると @Unicodeコードポイントは U+0040

なのでirb上で "\u0040" と書くと…

irb(main):001:0> "\u0040"
=> "@"

変わってくれる。ただし…

irb(main):002:0> '\u0040'
=> "\\u0040"

シングルコーテションだとならない

原理

ドキュメントにこうある

ダブルクォートで囲まれた文字列ではバックスラッシュ記法と式展開(後述)が有効になります。 - リテラル (Ruby 2.5.0) - 文字列リテたる


バックスラッシュ記法 \unnnn Unicode 文字(n は 0-9,a-f,A-F、16進数4桁で指定)。 - リテラル (Ruby 2.5.0) - バックスラッシュ記法

ということで "u\コードポイント" と記述するとそれをよしなにバックスラッシュ記法として展開してくれるという話

参考リンク