[ruby-list:46168] Re: 文字から16進への変換方法について
前川です。
るびきちさんの助言で、なんとか、変換処理作りましたが、
もう少し、Rubyらしいコーディングにしたいのですが、
どなたか、ご教示願います。
よろしくお願いします。
るびきちさんの助言=======
> # -*- coding: cp932 -*-
> "船".each_byte do |byte|
> "%#x" % byte # => "0x91", "0x44"
> end
> String#each_byteでそれぞれのバイトでループします。
> そして、byte(整数)を String#% を使って書式文字列 %#x で 0x〜 に変換しま
す。
=====================
下名が作成したプログラム(SJIS)−−−−−−−−−−−
data1 = '船海システムG' # 26バイトの '91448a43835683588365838047'に変換する
data2 = 'TEST' # 8バイトの '54455354'に変換する
data3 ='船'
def textToHexConversion(data)
textHex=''
byteConversionData = ['a','b','c','d','e','f']
data.each_byte do |byte|
"%#x" % byte
textHex = textHex + (byte/16).to_s
byte2 = byte % 16
if (byte2 > 9) #10以上は、aからfに置き換える
textHex = textHex + byteConversionData[byte2-10]
else
textHex =textHex+byte2.to_s
end
end
return textHex
end
puts textToHexConversion(data1) # data1の変換
puts textToHexConversion(data2) # data2の変換
puts textToHexConversion(data3) # data3の変換
−−−−−−−−−−−−−−−−−−−