1

我正在为我的项目使用 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');
}
4

1 回答 1

0

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

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

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

$content = mb_convert_encoding($content, "UTF-8");
于 2013-04-23T01:29:22.797 回答