【问题标题】:PHPmailer cyrillic charset troublePHPmailer 西里尔字符集问题
【发布时间】:2015-05-19 13:33:36
【问题描述】:

我认为我做的事情是正确的:

  • 我正在指定 PHPMailer 对象的字符集:$mail->CharSet = "UTF-8";
  • 邮件正文和 php 脚本的字符集也是 UTF-8

但是电子邮件到达时会出现这种错误(单词被带有“?”符号的黑色四分之一分隔:

更新 1

在电子邮件的来源中发现了一些中国字形(但不是西里尔符号)

【问题讨论】:

  • 如果您查看收到的消息的来源,这些损坏的字符是否与换行符一致?如果你稍微改变一下内容,损坏的字符会改变吗?您确定文本在传递给消息之前没有损坏吗?
  • 这些字符没有损坏(我在发送电子邮件的同时输出到页面)。并且这个位置没有换行符。换行处理正确。
  • 你没有回答我问的问题。查看收到消息的来源 - 我不是在谈论您的原始文本或您的网络输出,它们可能完全不同。
  • 哇。我查看了 gmail 中的邮件来源,我很惊讶:来源西里尔符号就像中国字形。看看这些截图:normal mail body fragmentmail source
  • 看起来不太好。您能否将其缩减为显示问题的最小示例并在您的问题中发布实际数据,然后我将有一些工作要做。

标签: php character-encoding phpmailer cyrillic


【解决方案1】:

类似于我的问题PHP ASCII to UTF-8 does not work

我发现当你从 sql 中提取数据时,你需要将其转换为 UTF-8

【讨论】:

    【解决方案2】:

    试试:

    $mail = new PHPMailer();
    $mail->CharSet = 'UTF-8';
    

    正如 user2354947 在PHPMailer character encoding issues 中所说的

    必须在 PHPMailer() 之后输入 CharSet 定义

    【讨论】:

    • 您使用的引号与此无关。
    • Zivci,你在开玩笑吗? )) 当然,我在设置 CharSet 参数之前实例化了 PHPMailer
    猜你喜欢
    • 2010-11-02
    • 2020-08-14
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-23
    相关资源
    最近更新 更多