之前用PHPMailer帮人家开发了用于发邮件的网站,由于是英文客户,所以中文没怎么测试,最近反馈说 中文乱码!

其实,之前是有发现标题中会出现中文了乱码,已经通过相应的代码解决。

收到反馈之后,查看了html内容编码设置是utf-8应该没有问题,我又使用自己开发的系统发了一个邮件,中文显示正常。到这里我感觉是他们反馈的问题不对,是不是什么特例?

我正想着,无意中手机收到邮件通知,打开一看,中文全部乱码了。我滴妈呀,原来是网页全部显示正常,手机客户端显示乱码,从何下手呢??我的代码文件和邮件的html内容都是utf-8编码的。

---------------------------------最后发现问题如下-----------------------------------------

PHPMailer.class.php 类里面的默认编码是iso-8859-1.这应该是一个欧洲的编码,所以问题在这里,把默认编码改成utf-8, 然后代码里设置一下

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

-----------------------------------------phpmailer 乱码总结-----------------------------------------------------------------------

1:打开phpmailer 核心文件 class.phpmailer.php , 将 public $CharSet = ‘iso-8859-1′; 改为 public $CharSet = ‘UTF-8′;

至于为什么要将'iso-8859-1′改为‘UTF-8',请google或百度一下'iso-8859-1′就清楚。

2:设置邮件的编码;

$mail = new PHPMailer();

$mail->Charset='UTF-8′;

相信有不少朋友是设置成”GBK”或“GB2312”的,我开始也是,后来了解到Mail是国际化的,如果想在像Gmail等那样的国际化邮箱正确显示中文,请将编码设置为“UTF-8”;

3,:设置标题编码;
这里可能有人会问,都设置了邮件的编码了,还设置标题编码做什么。。。 如果您测试过多种邮箱,你会发现标题中文是乱码的,没错,即使您设置了 $mail->Charset=”UTF-8″;
既然学习php应该多看看php手册或留意php.net ,标题乱码的解决办法我是在php官网找到答案的 hhtp://.www.php.net/mail。
$mail->Subject =”信件标题”; 改为 $mail->Subject = “=?utf-8?B?” . base64_encode(“信件标题”) . “?=”;
“设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体。”(来自php手册 base64_encode() )

PHPMailer中文乱码问题的解决方法的更多相关文章

  1. jquery.ajax的url中传递中文乱码问题的解决方法

    jquery.ajax的url中传递中文乱码问题的解决方法   JQuery JQuery默认的contentType:application/x-www-form-urlencoded 这才是JQu ...

  2. windows下mysql中文乱码, 配置解决方法

    内容源自:windows下mysql中文乱码, 配置解决方法 解决方法:打开mysql安装目录,打开my.ini文件(如果只有my-default.ini文件,先将其改名为my.ini!!!) 修改内 ...

  3. Get,Post请求中文乱码问题有效解决方法

    本文主要介绍如何有效解决web请求中的乱码问题,其实解决方法有很多种,不同的请求类型解决方法也不相同. 本文只介绍最方便的一种: 1.先修改jsp中的编码方式 2.针对Post方式提交的请求如果出现乱 ...

  4. XShell连接CentOS 7.2显示中文乱码问题的解决方法

    背景 使用U盘往Windows主机.Linux主机传文件还是经常的事,但有时候文件名有中文, 传到Linux机器会有乱码,选择起来也很麻烦,最近刚好遇到,写下解决方法. 环境 Linux [root@ ...

  5. eclipse中生成的html存在中文乱码问题的解决方法

    最近在做测试报告生成时遇到了个中文乱码的问题,虽然在html创建过程中设置了编码格式htmlReporter.config().setEncoding("UTF-8");但是生成的 ...

  6. Linux中文乱码问题终极解决方法

    方法一: 修改/root/.bash_profile文件,增加export LANG=zh_CN.GB18030该文件在用户目录下,对于其他用户,也必须相应修改该文件. 使用该方法时putty能显示中 ...

  7. PHP中文乱码的常见解决方法总结

    PHP中文乱码是PHP开发中的常见问题之一.PHP中文乱码有时发生在网页本身,有些产生在于MySQL交互的过程中,有时与操作系统有关.下面进行一番总结. 一.首先是PHP网页的编码 1. php文件本 ...

  8. navicat在ubuntu下中文乱码的真正解决方法ZT

    乱码解决方法(自己解决我自己这种情况之后打猜测): 打开start_navicat文件,会看到 export LANG="en_US.UTF-8" 将这句话改为 export LA ...

  9. CentOS中文乱码问题的解决方法

    一.CentOS系统访问 xxx.cn ,发现中文乱码于是用以前的方式:# yum -y install fonts-chinese # yum -y install fonts-ISO8859 Ce ...

随机推荐

  1. for(;;)

    for(;;)就是一个for循环,只是循环的条件没有写到for语句当中,退出条件在for循环体内,要不就是死循环.

  2. 简单总结ConcurrentHashMap

    一.HashTable hashTable是一个线程安全的容器,是线程安全版本的HashMap.但它的底层是和HashMap一样的,只是在方法上都加上了synchronized关键字. 这样子有什么后 ...

  3. 111 Minimum Depth of Binary Tree 二叉树的最小深度

    给定一个二叉树,找出其最小深度.最小深度是从根节点到最近叶节点的最短路径的节点数量.详见:https://leetcode.com/problems/minimum-depth-of-binary-t ...

  4. BootStrap的基本使用

    bootstrap 现成的css样式,直接调用类作用是快速写出页面又称UI框架Bootstrap中文网LESS是预处理器CSS预处理器定义了一种新的语言,基本的思想是用一种专门的编程语言,开发者只需要 ...

  5. Android用Intent来启动Service报“java.lang.IllegalArgumentException: Service Intent must be explicit”错误的解决方法

    今天没事来写个播放器,照搬书上的原句,其中一句 //用于启动和停止service的Intent final Intent it = new Intent("android.mu.action ...

  6. docker 配置国内镜像源 linux/mac/windows

    部分内容来自:http://guide.daocloud.io/dcs/daocloud-9153151.html 加速器官方DaoCloud承诺:加速器服务永久免费且无流量限制 使用前提:注册Dao ...

  7. 如何删除github上项目的文件

    1. 你要有前面一章的开发平台和github插件,下面就是基于前面来做的. 如何删掉你github上的文件呢?想必你的电脑有一个下载的git工具了,如果还是没有的话,请用npm下载一个git.这是我已 ...

  8. java 使用htmlunit模拟登录爬取新浪微博页面

    mport java.io.IOException;import java.net.MalformedURLException;import com.gargoylesoftware.htmlunit ...

  9. 万事先问『为什么』 what why how

    万事先问『为什么』! 遇到问题时,很多人的行为模式顺序是,先问『做什么』,『怎么做』,他们从来不问『为什么』,他们对根源性问题很模糊. 而聪明人则是先问『为什么』,再去构建『怎么做』,而『做什么』就是 ...

  10. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

    com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 长时间没连接mysql断开了, ...