Ruby スクリプトについて
Unicode 文字について調べるとき https://www.compart.com/en/unicode というサイトを利用している。毎回ブラウザで検索欄にコードポイントを入力して検索するのは面倒なので、次の Ruby スクリプトを用意した。
unicode
#! /usr/bin/env ruby
# frozen_string_literal: true
require 'net/http'
require 'pathname'
if ARGV.empty?
puts('コマンドライン引数を指定してください。')
exit(1)
end
URL = 'https://www.compart.com/en/unicode'
ARGV[0].chars.each.with_index(1) do |char, i|
# (例) 鬱 -> U+9B31
unicode = format('U+%04X', char.ord)
uri = URI(Pathname(URL).join(unicode).to_s)
response = Net::HTTP.get_response(uri)
message =
case response.code.to_i
when 200
uri
when 404
'見つかりませんでした'
else
"レスポンスエラー #{response.code})"
end
puts("(#{i}) #{char} (#{unicode}): #{message}")
end
実行例
stdout
$ ./unicode ニ二
(1) ニ (U+30CB): https://www.compart.com/en/unicode/U+30CB
(2) 二 (U+4E8C): https://www.compart.com/en/unicode/U+4E8C
$ ./unicode 👨👩👧👦
(1) 👨 (U+1F468): https://www.compart.com/en/unicode/U+1F468
(2) (U+200D): https://www.compart.com/en/unicode/U+200D
(3) 👩 (U+1F469): https://www.compart.com/en/unicode/U+1F469
(4) (U+200D): https://www.compart.com/en/unicode/U+200D
(5) 👧 (U+1F467): https://www.compart.com/en/unicode/U+1F467
(6) (U+200D): https://www.compart.com/en/unicode/U+200D
(7) 👦 (U+1F466): https://www.compart.com/en/unicode/U+1F466
iTerm2 を使っている場合、command キーを押しながらターミナル上の URL をクリックすることでブラウザで開くことができる。