Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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

QUANON
あんた、マジなんだな?
http://quanon.github.io/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away