Проблема с отображением русских букв 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.