电子邮件中的奇怪编码字符

时间:2017-10-03 13:33:29

标签: ruby ruby-on-rails-4 html-email mustache

我有一个通过ruby解析的小胡子模板,然后通过在电子邮件正文中标记html_safe来渲染它,但结果HTML中嵌入了一些奇怪的编码字符,例如

<body style=3D"min-width:640px;margin: 0 0 0 0;" bgcolor=3D"#f6f6f6" link==3D"#000000" vlink=3D"#000000" alink=3D"#000000" text=3D"#000000">
  <br />

  <table width=3D"100%" border=3D"0" align=3D"center" 
cellpadding=3D"0" c=
ellspacing=3D"0" bgcolor=3D"#f6f6f6">
    <tr>
      <td bgcolor=3D"#f6f6f6" style=3D"border-bottom: 0;">
        <table width=3D"640" style=3D"min-width:640px;" 
cellspacing=3D"0"=
 cellpadding=3D"0" border=3D"0" align=3D"center">

      <tbody>
        <tr>
          <td bgcolor=3D"#000000">
            <table width=3D"640" bgcolor=3D"#000000" cellspacing=3D"0=
" cellpadding=3D"0" border=3D"0" align=3D"center">
              <tbody>
                <tr>
                  <td width=3D"600" height=3D"10" bgcolor=3D"#000000"=
 style=3D"line-height:0px;font-size:0px;">
                    <div width=3D"1" height=3D"10" alt=3D"" style=3D"=
display:block; border:0;"></div>

为什么这些字符在将字符串标记为html安全后仍然存在?我错过了什么。 Mustache模板是常规HTML模板,其中包含要动态替换的胡子语法

1 个答案:

答案 0 :(得分:2)

这是quoted-printable样式,它类似于URL中的事物转义方式。您可能习惯于%20,但此处=20是相同的。

由于=是转义的一部分,因为HTML &变为&amp;,而网址%变为%25=必须编码为=3D

HTML恰好使用了=字符的很多,所以你会看到=3D sigil。