ruby 字符和 ascii 码之间的转换

字符 转 ascii

'a'.ord # => 97

"a".unpack('c') #=> 97 `c` 提取一个字符作为整数

"string".each_byte do |c|
    puts c
end

'hello world'.each_byte.to_a
[104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]

'hello world'.bytes
[104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]

Ascii 转 字符

97.chr # => "a"

'hello world'.bytes # => [104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]
[104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100].map{|m|m.chr}
# => ["h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d"]

字符转二进制

"aa".unpack('b8B8')  #=> ["10000110", "01100001"]

B 从每个字符中提取位(首先是最高有效位)

b 从每个字符中提取位(首先是最低有效位)