【问题标题】:Japanese character missing from email电子邮件中缺少日文字符
【发布时间】:2013-04-15 02:24:17
【问题描述】:

我正在为我的项目使用 codeignator 框架。交付时电子邮件中缺少一些日文字符。我检查了控制器并且所有字符都存在。我检查了配置、电子邮件字符集,发现它是 utf-8。我还添加了这个“header('Content-Type: text/html;charset=utf-8');” .同样,从同一个项目发送的邮件也没有问题,仅此特定电子邮件存在问题。

公共函数电子邮件() {

                if($this->lan == "en"){

                $site_name      = "xyz.com";
                $fromname           = "xyz.com";
                $subject            = 'sub 【'.$site_name.'】';
                $content            = " Content of email from ".$site_name."<br /><br />";
                }else{

                $site_name          = "japanesename.com";
                $fromname           = "japanesename.com";

                header('Content-Type: text/html;charset=utf-8');

                $subject            = 'japanesesub【'.$site_name.'】';
                $content            = "

                                     jp content".$site_name."<br />";
                }

        $to                 = $email;
                $this->load->library('email');
                $this->email->set_mailtype('html');
                $this->email->from($fromemail,$fromname);
                $this->email->to($to);
                $this->email->subject($subject);
                $this->email->message($content);
                $this->email->send();
                redirect('redirect_url');
}

【问题讨论】:

标签: codeigniter email utf-8


【解决方案1】:

您不需要标题,而是需要在启动其他电子邮件代码之前设置字符集配置:

// Set mail config variables
$config['charset'] = 'utf-8';
$this->email->initialize($config);              

此外,您必须将任何字符串编码为 UTF-8,即使您希望它们已经是 utf-8 编码。

$content = mb_convert_encoding($content, "UTF-8");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-03
    • 2023-01-11
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多