Новичок в Ruby, и мне интересно, как заставить следующее печатать только символ степени...
require 'htmlentities'
coder = HTMLEntities.new
puts coder.decode('°')
В настоящее время вывод командной строки (Windows): °
Спасибо!
Новичок в Ruby, и мне интересно, как заставить следующее печатать только символ степени...
require 'htmlentities'
coder = HTMLEntities.new
puts coder.decode('°')
В настоящее время вывод командной строки (Windows): °
Спасибо!
Похоже, что HTMLEntities.decode
возвращает строку в UTF-8, и ваша консоль задыхается от этой кодировки. Вам придется перекодировать строку, прежде чем передавать ее в puts
.
Если вы используете Ruby 1.9.2, код выглядит довольно простым (на основе Строка и документация по Кодировка ):
puts coder.decode('°').encode(Encoding.find('<Whatever-Windows-Uses>'))
Возможно, вам придется попробовать несколько разных кодировок, прежде чем вы найдете что-то, что сможет понять ваша консоль.
Если вы используете более старую версию Ruby, похоже, что перекодирование можно выполнить через Iconv (см. этот вопрос - я подозреваю, что вы просто идете в противоположном направлении).
Надеюсь это поможет!