fork download
  1. f = ->*bytes {bytes.pack('C*').force_encoding("utf-8").codepoints}
  2. g = ->*bytes {puts "%p\n=> %p\n\n" % [bytes.map {|b| "%02X" % b}, f.(*bytes).map {|cp| "U+%04X" % cp}]}
  3. g.(0x6F, 0x64, 0x61, 0x69)
  4. g.(0xE3, 0x81, 0x8A, 0xE9, 0xA1, 0x8C)
  5. g.(0xC2, 0xA9, 0xF0, 0x9F, 0x8D, 0x94, 0xE9, 0xA6, 0x99, 0x41)
  6.  
Success #stdin #stdout 0s 28216KB
stdin
Standard input is empty
stdout
["6F", "64", "61", "69"]
=> ["U+006F", "U+0064", "U+0061", "U+0069"]

["E3", "81", "8A", "E9", "A1", "8C"]
=> ["U+304A", "U+984C"]

["C2", "A9", "F0", "9F", "8D", "94", "E9", "A6", "99", "41"]
=> ["U+00A9", "U+1F354", "U+9999", "U+0041"]