在邮件程序中对不同的语言使用不同的字符编码
Use different character encoding for different languages in mailer
我目前正在开发一个多语言网站,该网站现在在原来的日语和英语语言的基础上增加了中文支持。不幸的是,我们一直在使用 charset: 'ISO-2022-JP
直到现在,这意味着许多汉字将在发送给用户的电子邮件中呈现为问号。理想的解决方案是使用 UTF-8
,尽管不幸的是这对日文字符有一些问题。
我已经有了用于发送与用户语言相关的电子邮件的代码:
def set_language
language_mapping = {
0 => "ja",
1 => "en",
2 => "zh"
}
used_language = @reservation.user.language
I18n.locale = language_mapping[used_language]
end
有什么方法可以为要连接到此的字符集添加某种条件吗?目前,我的邮件助手有 charset: 'ISO-2022-JP'
,但我想为中文 ('zh') 或英文 ('en') 组中的任何用户使用 UTF-8。一种简单的方法是每次都手动添加字符集,但这似乎不是最 "DRY" 的方法。
为清楚起见编辑:charset: 'ISO-2022-JP'
行在顶部的默认设置中。
如果这是一个非常愚蠢的问题,请提前致歉,但我似乎根本无法弄清楚。
最终找到了一个非常简单的解决方案。应用程序默认是 UTF-8,所以我只是将它添加到任何需要 ISO-2022-JP 的邮件程序中:
charset: (@reservation.user.language == 0 ? 'ISO-2022-JP' : 'UTF8'),
我目前正在开发一个多语言网站,该网站现在在原来的日语和英语语言的基础上增加了中文支持。不幸的是,我们一直在使用 charset: 'ISO-2022-JP
直到现在,这意味着许多汉字将在发送给用户的电子邮件中呈现为问号。理想的解决方案是使用 UTF-8
,尽管不幸的是这对日文字符有一些问题。
我已经有了用于发送与用户语言相关的电子邮件的代码:
def set_language
language_mapping = {
0 => "ja",
1 => "en",
2 => "zh"
}
used_language = @reservation.user.language
I18n.locale = language_mapping[used_language]
end
有什么方法可以为要连接到此的字符集添加某种条件吗?目前,我的邮件助手有 charset: 'ISO-2022-JP'
,但我想为中文 ('zh') 或英文 ('en') 组中的任何用户使用 UTF-8。一种简单的方法是每次都手动添加字符集,但这似乎不是最 "DRY" 的方法。
为清楚起见编辑:charset: 'ISO-2022-JP'
行在顶部的默认设置中。
如果这是一个非常愚蠢的问题,请提前致歉,但我似乎根本无法弄清楚。
最终找到了一个非常简单的解决方案。应用程序默认是 UTF-8,所以我只是将它添加到任何需要 ISO-2022-JP 的邮件程序中:
charset: (@reservation.user.language == 0 ? 'ISO-2022-JP' : 'UTF8'),