Я хотел бы +1 dylanfm и комментарий AShelly, но добавить [0]:
'A'.unpack('C')[0]
Вызов unpack возвращает массив, содержащий единственное целое число, которое не всегда принимается, когда требуется целое число:
$ ruby -e 'printf("0x%02X\n", "A".unpack("C"))'
-e:1:in `printf': can't convert Array into Integer (TypeError)
from -e:1
$ ruby -e 'printf("0x%02X\n", "A".unpack("C")[0])'
0x41
$
Я пытаюсь написать код, который работает на Ruby 1.8.1, 1.8.7 и 1.9.2.
Отредактировано для передачи C для распаковки в верхнем регистре, потому что unpack ("c") дает мне -1, где ord () дает мне 255 (несмотря на запуск на платформе, где символ C подписан).