gpt4 book ai didi

ruby-on-rails - ActionMailer HTML 编码 hell - 特殊字符替换为垃圾

转载 作者:数据小太阳 更新时间:2023-10-29 07:07:51 24 4
gpt4 key购买 nike

我有 UTF-8 字符串:Website • Facebook
那是中间的一颗子弹又名•0xE2 0x80 0xA2

此值已正确存储在数据库中,并使用默认设置使用 Rails 3 和 ruby​​ 1.9.3 正确显示在屏幕上。

我正在尝试通过 HTML 电子邮件发送此邮件,但是当一切都说完之后,接收端看到的是垃圾:

enter image description here

这背后的代码很简单,我有一个 ActionMailer子类(默认使用 UTF-8)设置以在布局中发送带有 UTF-8 内容编码的 HTML 电子邮件:

email.html.erb布局文件:

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="chrome=1,IE=9" />
<meta charset="utf-8">
<%= stylesheet_link_tag "application", :media => "all" %>
</head>
<body class='email'>
<%= yield %>
</body>
</html>

内容使用与呈现网页相同的 View ,重要的一行是:

<p><%= simple_format strip_tags(comment.text) %></p>

我已经尝试了很多很多 force_encoding 的排列, encode ,将冗余 UTF-8 编码应用于 ActionMailer子类、 View 文件的顶部和大约一打其他东西,但似乎没有任何效果。

the raw html message 查看的重要 HTML通过 Apple Mail 是:

Website =EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD Facebook

如果您查看原始消息(上面的链接),这不会发生在纯文本消息上,只会发生在 HTML 消息上。

长话短说

ActionMailer 正在替换应该是 UTF-8 项目符号的字符:0xE2 0x80 0xA2
有垃圾:0xEF 0xBF 0xBD 0xEF 0xBF 0xBD 0xEF 0xBF 0xBD 0xEF 0xBF 0xBD 0xEF 0xBF 0xBD 0xEF 0xBF 0xBD 0xEF 0xBF 0xBD 0xEF 0xBF 0xBD 0xEF 0xBF 0xBD 0xEF 0xBF 0xBD

我该如何解决这个问题?

最佳答案

检查您是否使用 gem 来内联 CSS,例如 premailer-rails3

According to this post ,这可能会损坏您的 ActionMailer 电子邮件中的 UTF-8 字符。

尝试用 actionmailer_inline_css gem 之类的东西删除或替换 gem。

关于ruby-on-rails - ActionMailer HTML 编码 hell - 特殊字符替换为垃圾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13940148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com