我有一个已经国际化的Rails 4应用程序。我的应用程序发送每种语言的电子邮件。它最初用英语和法语写成。在我有法语文本的地方,我在文件的开头添加了# encoding: utf-8
语句。
我刚刚将葡萄牙语添加到我的应用程序中。在我的邮件程序中,我在文件开头有# encoding: utf-8
语句。但是,当我尝试通过UTF-8编码发送葡萄牙电子邮件时,它无法正常工作。我已将这些电子邮件中的字符集从UTF-8更改为ISO-8859-1。
我在邮件中有外国文本,而不是使用I18n哈希,因为我有一些多语言的人使用我的应用程序。每个人都可以选择他们想要接收电子邮件的语言。
有没有办法在一个文件中使用多种类型的编码?我已经完成了在线搜索,但只看到了具有单一值的示例。
任何帮助都将不胜感激。
更新时间:2014年3月3日上午7:25 CDT
以下是我在尝试发送葡萄牙电子邮件时遇到的错误。
I, [2014-07-03T06:44:38.810000 #31093] INFO -- : Completed 500 Internal Server Error in 43ms
F, [2014-07-03T06:44:38.812179 #31093] FATAL -- :
ActionView::Template::Error (Your template was not saved as valid UTF-8. Please either specify UTF-8 as the encoding for your template in your text editor, or mark the template with its encoding by inserting the following as the first line of the template:
# encoding: <name of correct encoding>.
The source of your template was:
<!DOCTYPE html>
<html>
<head><meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /></head>
<body>
<p style="text-align: center;"><a href="http://www.iktusnetlive.com"><img src="http://www.iktusnetlive.com/assets/header-speakers-pt.jpg", alt: "iktusNETlive"></a></p>
<p><%= @user.first_name %>, sua conta de usuário GRATUITA iktusNET foi ativada!!!</p>
<p>Você agora pode usar sua conta de usuário GRATUITA iktusNET com endereço de email <%= @user.email %> com nome de usuário <%= @user.username %>.</p>
<p>Você agora tem acesso ao Webcast de Vídeo ao Vivo, ao FÓRUM de Discussão à Rede de CÍRCULO Social.</p>
<p>Nota: Tenha certeza que você escreva abaixo sua informação de login. Letras em Caixa Alta no seu endereço de email e nome de usuário serão ignoradas. Seu endereço de email e nome de usuário serão salvos somente com letras em caixa baixa. Nós armazenamos a sua senha de maneira segura. Ela é encriptada de tal forma que ninguém pode descobrir o que ela é, incluindo o Time da iktusNET. Contanto, se você esquecer a sua senha você pode requerer que sua senha seja resetada na tela de login.</p>
<p>Nós temos uma Biblioteca de Mídia onde você pode ouvir, assistir e ler materiais de ministérios que ensinam mensagens de forma similar à ensinada pelo Centro de Oração de Tulsa. Você pode usar a Biblioteca de Mídia sem estar logado na sua Conta de Usuário GRATUITA iktusNET. Esta página pode ser acessada a partir daS PáginaS HOME ou MÍDIA. </p>
<p style="text-align: justify;">Clique <%= link_to "here", "http://www.iktusnetlive.com/pt/invite" %> para Convidar seus AMIGOS para ingressar à iktusNETlive. </p>
<p>Muito obrigado por ingressar à iktusNET e tenha um ótimo dia! </p>
<p>O Time iktusNET</p>
</body>
</html>):
app/mailers/user_mailer.rb:31:in `acctact_email_pt'
app/controllers/users_controller.rb:134:in `update'
答案 0 :(得分:0)
视图文件本身的编码不正确。您必须配置文本编辑器以将文件保存在有效的utf-8中。
将文件标记为#encoding utf-8
将无济于事,因为当它实际上采用不同的编码时,会强制ruby(错误地)将其解释为utf-8。