Python
文字列 => 16進文字列
binasciiモジュールでバイト列を16進文字列に変換することができる。
ユニコード文字列の場合はエンコードしてから変換する。
Python2/Python3
import binascii
binascii.hexlify(b'Hello') # => b'48656c6c6f'
binascii.b2a_hex(b'Hello') # => b'48656c6c6f'
binascii.hexlify(u'こんにちは'.encode('utf-8')) # => b'e38193e38293e381abe381a1e381af'
binascii.b2a_hex(u'こんにちは'.encode('utf-8')) # => b'e38193e38293e381abe381a1e381af'
codecsモジュールを使うこともできる。
Python2/Python3
import codecs
codecs.encode(b'Hello', 'hex_codec') # => b'48656c6c6f'
codecs.encode(u'こんにちは'.encode('utf-8'), 'hex_codec') # => b'e38193e38293e381abe381a1e381af'
Python2ではstr.encode
で変換することもできる。
Python2のみ
'Hello'.encode('hex') # => '48656c6c6f'
16進文字列 => 文字列
binasciiモジュールで16進文字列をバイト列に変換することができる。
ユニコードにする場合は結果をデコードする。
Python2/Python3
import binascii
binascii.unhexlify(b'48656c6c6f') # => b'Hello'
binascii.a2b_hex(b'48656c6c6f') # => b'Hello'
binascii.unhexlify(b'e38193e38293e381abe381a1e381af').decode('utf-8') # => 'こんにちは'
binascii.a2b_hex(b'e38193e38293e381abe381a1e381af').decode('utf-8') # => 'こんにちは'
codecsモジュールを使うこともできる。
Python2/Python3
import codecs
codecs.decode(b'48656c6c6f', 'hex_codec') # => b'Hello'
codecs.decode(b'e38193e38293e381abe381a1e381af', 'hex_codec').decode('utf-8') # => 'こんにちは'
Python2ではstr.decode
で変換することもできる。
Python2のみ
'48656c6c6f'.decode('hex') # => 'Hello'
Ruby
文字列 => 16進文字列
String#unpack を使って文字列を16進文字列に変換することができる。
'Hello'.unpack('H*') # => ["48656c6c6f"]
'こんにちは'.unpack('H*') # => ["e38193e38293e381abe381a1e381af"]
16進文字列 => 文字列
Array#packを使って16進文字列を文字列に変換することができる。
必要に応じてString#force_encodingで文字コード情報を変更する。
['48656c6c6f'].pack('H*') # => "Hello"
['e38193e38293e381abe381a1e381af'].pack('H*').force_encoding('utf-8') # => "こんにちは"
Bash
文字列 => 16進文字列
xxd
で文字列を16進文字列に変換できる。
echo -n Hello | xxd -p # => 48656c6c6f
echo -n こんにちは | xxd -p # => e38193e38293e381abe381a1e381af
16進文字列 => 文字列
xxd
で16進文字列を文字列に変換できる。
echo -n 48656c6c6f | xxd -r -p # => Hello
echo -n e38193e38293e381abe381a1e381af | xxd -r -p # => こんにちは
MySQL
MySQL :: MySQL 5.6 リファレンスマニュアル :: 9.1.4 16 進数リテラル
文字列 => 16進文字列
SELECT HEX('Hello');
-- 48656C6C6F
SELECT HEX("こんにちは")
-- E38193E38293E381ABE381A1E381AF
16進文字列 => 文字列
SELECT x'48656C6C6F';
-- Hello
SELECT x'E38193E38293E381ABE381A1E381AF'
-- こんにちは