Edited at

[Ruby] Unicode 文字について調べるための Ruby スクリプト


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 をクリックすることでブラウザで開くことができる。