Как мне кодировать / декодировать HTML-объекты в Ruby?
136665 просмотра
7 ответа
Я пытаюсь декодировать некоторые объекты HTML, такие как '<'
становление '<'
.
У меня есть старый драгоценный камень ( html_helpers ), но он, кажется, был заброшен дважды.
Любые рекомендации? Мне нужно будет использовать его в модели.
Автор: Kostas Источник Размещён: 12.11.2019 09:24Ответы (7)
148 плюса
HTMLEntities может сделать это:
: jmglov@laurana; sudo gem install htmlentities
Successfully installed htmlentities-4.2.4
: jmglov@laurana; irb
irb(main):001:0> require 'htmlentities'
=> []
irb(main):002:0> HTMLEntities.new.decode "¡I'm highly annoyed with character references!"
=> "¡I'm highly annoyed with character references!"
Автор: Ivailo Bardarov
Размещён: 06.03.2011 02:19
285 плюса
Для кодирования символов вы можете использовать CGI.escapeHTML
:
string = CGI.escapeHTML('test "escaping" <characters>')
Для их декодирования есть CGI.unescapeHTML
:
CGI.unescapeHTML("test "unescaping" <characters>")
Конечно, перед этим необходимо включить библиотеку CGI:
require 'cgi'
И если вы в Rails, вам не нужно использовать CGI для кодирования строки. Есть h
метод.
<%= h 'escaping <html>' %>
Автор: Damien MATHIEU
Размещён: 21.10.2009 12:46
40 плюса
Я думаю, что камень Nokogiri также хороший выбор. Он очень стабилен и имеет огромное содействующее сообщество.
Образцы:
a = Nokogiri::HTML.parse "foo bär"
a.text
=> "foo bär"
или же
a = Nokogiri::HTML.parse "¡I'm highly annoyed with character references!"
a.text
=> "¡I'm highly annoyed with character references!"
Автор: Hoang Le
Размещён: 18.12.2014 08:27
35 плюса
Для декодирования символов в Rails используйте:
<%= raw '<html>' %>
Так,
<%= raw '<br>' %>
будет выводить
<br>
Автор: memonk
Размещён: 20.11.2010 09:59
8 плюса
Если вы не хотите добавлять новую зависимость только для того, чтобы сделать это (например HTMLEntities
), и вы уже используете ее Hpricot
, она может быть как escape, так и unescape для вас. Он обрабатывает гораздо больше, чем CGI
:
Hpricot.uxs "foo bär"
=> "foo bär"
Автор: Jason L Perry
Размещён: 06.12.2011 06:13
0 плюса
Вы можете использовать htmlascii
драгоценный камень:
Htmlascii.convert string
Автор: kartouch
Размещён: 03.12.2013 09:04
-5 плюса
<% str="<h1> Test </h1>" %>
result: < h1 > Test < /h1 >
<%= CGI.unescapeHTML(str).html_safe %>
Автор: Usman
Размещён: 01.01.2015 11:47
Вопросы из категории :
- html Определить часовой пояс пользователя
- html Как определить, какой из указанных шрифтов был использован на веб-странице?
- html Как мне дать моим веб-сайтам значок для iPhone?
- html Как отключить автозаполнение браузера в поле веб-формы / теге ввода?
- html Как автоматически изменить размер текстовой области с помощью Prototype?
- html Как вы можете настроить номера в упорядоченном списке?
- html Прокрутка переполненных DIV с помощью JavaScript
- html Как поместить пробел перед текстом опции в элементе выбора HTML?
- html Есть ли HTML напротив <noscript>?
- html Как я могу найти неиспользуемые изображения и стили CSS на веб-сайте?
- ruby Вызов команд оболочки из Ruby
- ruby Почему в Ruby нет реального StringBuffer или StringIO?
- ruby Как создать случайный 10-значный номер в рубине?
- ruby Каков наилучший способ конвертировать массив в хеш в Ruby
- ruby Determine file type in Ruby
- ruby Раскладка каталога для чистого Ruby-проекта
- ruby Как я могу "красиво" отформатировать вывод JSON в Ruby on Rails?
- ruby Как сгенерировать случайную строку в Ruby
- ruby Изменения модели документа CouchDB?
- ruby JRuby on Rails против Ruby on Rails, в чем разница?