Rubyリファレンス: Home

unpack (String)

Edit   History

標準クラス・モジュール > String > unpack

str.unpack(format)

unpackメソッドは、文字列のバイト列を引数formatの書式に従って分解し、配列を返します。文字列をバイナリデータとして扱うときに使います。引数formatの書きかたは、packテンプレートを参照してください。

次の例は、バイト列を16ビット(2バイト)のunsigend short型の整数2個と見なして、整数を配列に取り出します。

s = "\xD2\x04\x2E\x16"
p s.unpack("S2")
[1234, 5678]

次の例は、PNG画像の最初の8バイトを文字列に取り出して、PNGの形式として正しいかどうかを調べます。

File.open("monkey.png", "rb") do |f|
  head = f.read(8)
  if head.unpack("CA3C4") == [0x89, "PNG", 0xd, 0xa, 0x1a, 0xa]
    puts "OK!"
  end
end
OK!

関連項目