我从数据库中提取文本,处理它,然后将其作为纯文本上传到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”."
这对我来说似乎很脆弱。有没有更好的方法呢?
答案 0 :(得分:0)
您可以尝试检查数据的编码!
确保您的数据库以UTF-8保存数据,并添加:
# encoding: UTF-8
在Ruby文件的顶部。