Предполагая, что ваши данные находятся в массиве примерно так (каждый элемент является байтом, и далее, из опубликованного вами описания, не более 127 по значению, то есть 7-битный символ ASCII):
array =[104, 101, 108, 108, 111]
string = array.pack("c*")
После этого строка будет содержать «привет», что, как я полагаю, вы запрашиваете.
Метод pack "Упаковывает содержимое arr в двоичную последовательность в соответствии с директивами в данной строке шаблона".
"c *" просит метод интерпретировать каждый элемент массива как "char". Используйте "C *", если вы хотите интерпретировать их как без знака символов.
http://ruby -doc.org / ядро / классов / Array.html # M002222
В примере, приведенном на странице документации, используется функция для преобразования строки с символами Unicode. В Ruby я считаю, что лучше всего это сделать с помощью Iconv:
require "iconv"
require "pp"
#Ruby representation of unicode characters is different
unicodeString = "This unicode string contains two characters " +
"with codes outside the ASCII code range, " +
"Pi (\342\x03\xa0) and Sigma (\342\x03\xa3).";
#printing original string
puts unicodeString
i = Iconv.new("ASCII//IGNORE","UTF-8")
#Printing converted string, unicode characters stripped
puts i.iconv(unicodeString)
bytes = i.iconv(unicodeString).unpack("c*")
#printing array of bytes of converted string
pp bytes
Читайте о Ruby's Iconv здесь .
Возможно, вы также захотите проверить этот вопрос .