Чтобы правильно кодировать двойную кавычку в значении атрибута HTML, есть несколько способов:
- Вы можете использовать неоткрытый
"
, если само значение атрибута ограничено '...'
или наоборот: (точно так же, как строки в Ruby) <meta property="og:name" content='some "thing"' />
- Если значение атрибута ограничено
"..."
, вы можете использовать числовую ссылку c в двойных кавычках "
: <meta property="og:name" content='some "thing"' />
- или ссылка на его символьную сущность
"
: <meta property="og:name" content="some "thing"" />
Из Ruby вы можете позвонить CGI.escapeHTML
: ( Я использую Ruby %(...)
процентный строковый литерал здесь для строки метатега, поэтому мне не нужно экранировать все "
)
require 'cgi'
name = 'some "thing"'
meta = %(<meta property="og:name" content="#{CGI.escapeHTML(name)}" />)
#=> "<meta property=\"og:name\" content=\"some "thing"\" />"
puts meta
Или tag
помощник, если вы используете Rails:
<%= tag(:meta, property: 'og:name', content: name) %>
Оба вышеприведенных вывода:
<meta property="og:name" content="some "thing"" />