RubyでQRコードを生成する方法

QRcode (QRコード) って便利だよね。
日本のキャッシュレス化によって近年よりにも増して絶好調です。
QR決済とかフィンテックを支える技術の1つですよね。

QRコードはデンソーが開発したマトリックス型二次元コードのことを言います。
カメラで読み取るあれです。

今回はRubyをつかってQRコードを生成する方法を書き溜めます。

QRコードの容量

まず、QRコードに収めることのできる文字数だけ確認します。
数字のみや、漢字・かな使用するかなどで最大使用可能文字数が変わります。

  • 数字のみ: 7,089文字
  • 英数(US-ASCII): 4,296文字
  • バイナリ(8ビット): 2,953バイト
  • 漢字・かな(Shift_JIS): 1,817文字

漢字・かなのエンコードはShift_JISなので注意してください。
utf8ではないです。
URLをQRコードにするときは英数なので 4296文字使える。
IEの許容しているURLの最長が2083ぐらいだったから余裕でいけますね。

rqrcode を使う

Rubyといってもgemにほぼ丸投げ。(こうやって少しずつ成長しなくなっていく..)
rqrcodeというgemを使用します。

あとは公式通りにやればいいと思いきや
pngなどのファイルに書き出ししようとするとエンコードでエラー起こします。

なのでexternal_encodingでASCII-8BITを使用するようにしてください。

こんな感じ。
実行して生成されるQRコードはこれです。
ちゃんと読み取れてるね!
Ruby でQRコードを生成する

いやーー簡単。


じゃあね〜〜〜〜。