2017-08-28 72 views
0

我目前正在使用多語種網站,該網站現在已經在原始的日語和英語語言之上添加了中文語言支持。不幸的是,我們一直在使用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。一個簡單的方法就是每次手動添加字符集,但似乎並不是最「幹」的方法。

編輯清晰度:行charset: 'ISO-2022-JP'是在頂部的默認設置。

如果這是一個非常愚蠢的問題,可以提前道歉,但我似乎無法解決它。

+0

語言可以由用戶動態選擇?或者它依賴於數據庫字段? –

+0

它基於數據庫中的列'language',它們在註冊時設置(EG:從日本站點註冊=>日語電子郵件) – kuwantum

回答

0

最後找到了一個非常簡單的解決方案。應用默認爲UTF-8,所以我只是將它添加到任何需要ISO-2022-JP的郵件程序中:

charset: (@reservation.user.language == 0 ? 'ISO-2022-JP' : 'UTF8'),