【问题标题】:Sending emojis via SwiftMailer通过 SwiftMailer 发送表情符号
【发布时间】:2021-12-30 02:35:29
【问题描述】:

我想通过 SwiftMailer 发送时事通讯,但电子邮件主题中应该有一个表情符号。我认为正确的字符集是 utf8mb4 但我怎样才能更改主题的字符集?

它适用于 Swift_Message 类的主体,因为我定义了 Content-Type,如下所示:

$message->setBody($html, 'text/html');

【问题讨论】:

    标签: php email emoji swiftmailer


    【解决方案1】:

    PHP 7.0 引入了Unicode codepoint escape 语法。

    这采用十六进制形式的 Unicode 代码点,并输出 UTF-8 中的代码点到双引号字符串或heredoc。任何有效的 代码点被接受,前导 0 是可选的。

    发送带有checkmark ✅ Unicode U+2705 的主题行的示例:

    $subject =  "\u{2705}Swift Mailer Dingbat Test Email";
    
    $message = (new Swift_Message($subject))
            ->setFrom([$mail_to_address])
            ->setTo([$mail_from_address])
            ->setBody($html_body, 'text/html');
    

    【讨论】:

    • 如果我像你一样做,它会起作用。但是如果我从数据库中获取字符串,它就不起作用。你知道为什么吗?保存为utf8_general_ci
    • @ProgrammingDude - 你的问题没有提到数据库,这使它成为一个非常不同的问题。您不能更改字符串的字符集,除非通过转换它。这意味着您必须将数据存储在正确的字符集中。您可以在创建表时设置表的字符集。创建一个关于在数据库上设置字符集的新问题。我回答了你提出的问题。
    猜你喜欢
    • 2021-07-22
    • 1970-01-01
    • 2011-10-24
    • 2018-09-02
    • 2016-12-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-10
    • 2019-04-22
    相关资源
    最近更新 更多