我正在从数据库中提取文本,对其进行处理,然后将其作为纯文本上传到 HTML 电子邮件创建者。电子邮件工具是我公司内部的。它可以采用简单的 HTML 标记,但不能处理非 ASCII 字符。它们将显示¿
给最终用户。作为我正在使用的示例,数据库中的源文本可能如下所示:
The café was…<br/>“delicious”.
我想要的输出是
The café was…<br/>“delicious”.
如果我使用HTMLEntities之类的 HTML 实体编码器,它会编码所有内容,包括标签括号 (<
和>
)。这是使用 HTMLEntities 的输出:
The café was…<br/>“delicious”.
如果我将以上内容上传到 HTML 电子邮件工具,最终用户会在他们的电子邮件中看到:
The café was…<br/>“delicious”
有什么方法可以两全其美,标签被单独留下,但非 ASCII 字符被编码为 HTML 实体?我可以继续使用 HTMLEntities 并使用gsub
; 像这样的东西:
coder = HTMLEntities.new
string = "The café was…<br/>“delicious”."
coder.encode(string, :named).gsub(/</, "<").gsub(/>/, ">")
#=> "The café was…<br/>“delicious”."
这对我来说似乎很脆弱。有什么更好的方法吗?