Проблема с отображением русских букв ruby

Помогите пожалуйста!Кодировка utf - 8, но русские буквы не выводятся. Почему так? Что я делаю не так? Вот код: puts "Привет! Как тебя зовут?" name = gets.encode("UTF-8").chomp puts "Привет," + name + ", как дела?" [Не выводятся русские буквыНе выводятся русские буквы


Ответы (1 шт):

Автор решения: Stanislav Volodarskiy

Если вы читаете текст и преобразуете его во внутреннюю кодировку, то перед печатью его нужно преобразовать обратно. Узнать что это за "обратно" можно двумя способами: спросить кодировку у самой строки после чтения или использовать Encoding.default_external:

v = gets # читаем строку как есть
puts "v.enconding #{v.encoding.inspect}"
puts "Encoding.default_external #{Encoding.default_external.inspect}"

# преобразуем имя в UTF-8
name = v.encode("UTF-8").chomp

# преобразуем имя обратно
name_de = name.encode(Encoding.default_external)

puts
puts "Привет, #{name_de}, как дела?" 

Если дружите с английским вот короткий обзор: Understanding Ruby: String Encoding, ASCII & Unicode.

→ Ссылка