LoginSignup
2
0

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-08-13

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

2
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0