各文字符号化方式のバイト列の確認

自分の勉強用に作ってみました。

# -*- coding: windows-31j -*-

w = (ARGV[0] || "").encode(ARGV[1] || "windows-31j")
puts "バイト数: #{w.bytesize}"
puts "バイト列:#{[].tap{|ary| w.bytes{|b| ary << '0x' + b.to_s(16)}}.join(", ")}"

実行及び、実行結果はこんな感じ。

ruby xxxx.rb あ utf-8

バイト数: 3
バイト列:0xe3, 0x81, 0x84

utf-16beとutf-16leでは確かにバイトオーダーが逆になっていることとかが確認できました♪

追記(2009/9/3)

バイト列を求めるプログラムはもっとすっきり書けた♪

puts "バイト列:#{w.bytes.map{|b| '0x' + b.to_s(16)}.join(", ")}"