我有一个通过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模板,其中包含要动态替换的胡子语法
答案 0 :(得分:2)
这是quoted-printable
样式,它类似于URL中的事物转义方式。您可能习惯于%20
,但此处=20
是相同的。
由于=
是转义的一部分,因为HTML &
变为&
,而网址%
变为%25
,=
必须编码为=3D
。
HTML恰好使用了=
字符的很多,所以你会看到=3D
sigil。