Я уверен, что в Ruby эта функция встроена для URL.Однако, если вы хотите определить более общие средства перевода, вы можете использовать код, подобный следующему:
s = "h@llo world"
t = { " " => "%20", "@" => "%40" };
puts s.split(//).map { |c| t[c] || c }.join
, который будет выводить
h%40llo%20world
В приведенном выше коде t
- этохеш, определяющий отображение от определенных символов до их представления.Строка разбивается на символы, и в хэше выполняется поиск эквивалента каждого символа.