返回顶部
首页 > 资讯 > 精选 >html邮件乱码怎么办
  • 827
分享到

html邮件乱码怎么办

2023-06-15 08:06:32 827人浏览 独家记忆
摘要

这篇文章主要介绍了html邮件乱码怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。html邮件乱码的解决办法:1、在mail函数前一行打印message内容;2、将邮件内

这篇文章主要介绍了html邮件乱码怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

html邮件乱码的解决办法:1、在mail函数前一行打印message内容;2、将邮件内容保存为html文件后查看;3、设置UTF-8编码。

本文操作环境:windows7系统、HTML5版、Dell G3电脑。

如何解决html邮件乱码问题?mail 邮件内容出现随机乱码

问题描述:

将数据(含中文)拼装为html文件格式,发送邮件到指定用户。

利用PHP中的mail函数

//拼装header。指定编码utf-8,解析邮件正文中的中文$headers = "From: xxx@xxx\n";$headers .= "MIME-Version: 1.0\n";$headers .= "Content-type: text/html; charset=utf-8\n";$headers .= "Content-Transfer-Encoding: 8bit\n";//拼装标题  解决中文标题乱码问题$subject = xxx;$subject = "=?UTF-8?B?".base64_encode($subject)."?=";mail($toEmail,$subject,$message,$headers);   // 其中$message为邮件内容主题,格式形如"<html><head></head><body><p>".$title."</p>".$message.$table."</body></html>";

收到邮件正文部分随机出现乱码,非特殊字符,位置随机,发送邮件到Mac和windows收到邮件乱码不一样。

  • windows:随机位置出现? 或!

  • Mac: 数据位置与传入不一致,比如,应为 xxxxAxxxxBxxxxx,收到的邮件为 xxxxBxxxxAxxxx

传入数据不一样时,有时会出现乱码,有时不会出现,对比与特殊字符也无关。

windows 乱码形如:html邮件乱码怎么办

排查:

1. 确认是否拼装错误

直接在mail函数前一行打印message内容,完整html格式,保存为html文件后打开。无乱码,与预期所需吻合。

2. 确认收到邮件内容

outlook查看邮件源文件(Mac可直接右击,windows无此功能,后是保存为html文件后查看),发现乱码处格式与步骤一中不一致。比如,标签出现 <!td>

3. 其他

其实到这一步就一直在怀疑php 的mail函数里究竟做了什么,是不是隐藏的PHP底层bug,传输过程改动了什么。却没有找到对应源码查看,此处徘徊很久。

又因为是中文乱码,一再确认设置了UTF-8,搜索很多结果也是关于这个

另外mac上位置的错乱有考虑到是否是传输截断有问题,是不是长度太长导致

总结出来两点

  • 邮件内容过长会导致解析问题

  • 解决:Content-Transfer-Encoding: base64

复盘补充:

问题一:邮件的长度限制依据是什么,长邮件该如何处理

php mail 方法的文档里有注明上限(印象中超过长度会是截断等处理,所以出现乱码也没想到是长度问题)

html邮件乱码怎么办

而php 基本方法设置上限的依据则是RFC 2822 2.1.1。

html邮件乱码怎么办

同时,它也提供了处理的建议,就是将文本内容拆成多行。拼装的html结构则是一行,显然是超过了长度。

问题二:为什么base64就可以解决邮件单行过长的问题

理解base64是什么,参考了base64笔记 Http://www.ruanyifeng.com/blog/2008/06/base64.html,简单来说base64中的3个字节代表ASCII中的4个字节

html邮件乱码怎么办

这和换行有什么关系呢?根据RFC822规定,BASE64Encoder编码每76个字符,还需要加上一个回车换行

问题三:Content-Transfer-Encoding 取不同值代表什么?

参考:MIME笔记和 https://www.w3.org/Protocols/rfc1341/5_Content-Transfer-Encoding.html

html邮件乱码怎么办

html邮件乱码怎么办

个人理解,除了base64以外的方式都没有插入换行的效果,也就无法解决问题

补充1:text类需要补充charset

html邮件乱码怎么办

补充2: "=?【编码】?B?".base64_encode($subject)."?=";  B代表 base64 Q代表quoted-printable

感谢你能够认真阅读完这篇文章,希望小编分享的“html邮件乱码怎么办”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: html邮件乱码怎么办

本文链接: https://lsjlt.com/news/279060.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • html邮件乱码怎么办
    这篇文章主要介绍了html邮件乱码怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。html邮件乱码的解决办法:1、在mail函数前一行打印message内容;2、将邮件内...
    99+
    2023-06-15
  • html打开乱码怎么办
    小编给大家分享一下html打开乱码怎么办,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!html打开乱码的解决办法:首先打开相应的HTML代码文件;然后在head节点加入<meta>标签;最后把字符声明为UTF-...
    99+
    2023-06-14
  • myeclipse打开html乱码怎么办
    这篇文章主要介绍“myeclipse打开html乱码怎么办”,在日常操作中,相信很多人在myeclipse打开html乱码怎么办问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • html文件乱码怎么解决
    今天小编给大家分享一下html文件乱码怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。首先,我们来了解什么是文件编码。...
    99+
    2023-07-06
  • html 文件乱码
    HTML 文件乱码是一个非常常见的问题,特别是在不同编码方式的文件之间转换时。本文将介绍关于HTML 文件乱码的原因,以及如何解决这个问题。首先,我们来了解什么是文件编码。每种文件格式都有自己的编码方式,用于将文本文件中的字符转换为计算机能...
    99+
    2023-05-15
  • PHP文件名乱码怎么办?
    PHP文件名乱码会导致程序无法正常运行,为了解决这个问题,我们可以采取以下几种方法: 方法一:修改PHP文件编码格式 有时候PHP文件本身的编码格式不正确,会导致文件名乱码。可以尝试将...
    99+
    2024-02-27
    解决 乱码 php 文件名
  • java文件写入乱码怎么办
    在用Java程序进行读写含中文的txt文件时,经常会出现读出或写入的内容会出现乱码。是因为系统的编码和程序的编码采用了不同的编码格式。解决方法:采用java.io.FileInputStream/java.io.InputStreamRea...
    99+
    2018-07-03
    java 乱码
  • Ajax乱码怎么办
    小编给大家分享一下Ajax乱码怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!ajax的全称是asynchronous ja...
    99+
    2024-04-02
  • phpstudy乱码怎么办
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。phpstudy乱码怎么办?phpstudy出现乱码导致Apache或者Nginx无法启动今天在使用Phpstudy的时候,突然无法创建新站点了(好久没用过了)。错误...
    99+
    2024-04-02
  • html乱码怎么解决
    html乱码是由字符编码不正确造成的。解决方法有:1. 检查字符编码;2. 转换字符编码;3. 使用字符实体;4. 使用cdn;5. 使用unicode bom;6. 使用字符转义。 ...
    99+
    2024-05-16
    notepad
  • html乱码怎么修复
    html 乱码是指网页出现乱码字符,修复步骤包括:检查字符集编码是否正确,最常见的是 utf-8;确保服务器发送正确的 content-type 头,包含字符集信息;检查文件编码是否为 ...
    99+
    2024-05-16
  • java邮件乱码解决方法
    java发送邮件乱码解决方法://设置邮件主题 message.setSubject(MimeUtility.encodeText(mail_subject,MimeUtility.mimeCharset("gb2312"), null...
    99+
    2017-11-09
    java 乱码
  • atom查看php文件乱码怎么办
    本文操作环境:windows7系统、atom0.194.0版、DELL G3电脑atom查看php文件乱码怎么办atom查看php文件乱码【背景】折腾:期间,想要去看看,atom中是否方便查看文件编码。【折腾过程】自己先摸索看看。右键中有个...
    99+
    2017-11-30
    php atom
  • 断电后php文件乱码怎么办
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。断电后php文件乱码怎么办?问题描述:异常关机后phpstorm中的文件内容被清空能不能恢复?可能是主板温度过高的原因,电脑自动关机,我的phpstorm是vmwar...
    99+
    2024-04-02
  • html乱码怎么办?常见解决方法分享
    在互联网上浏览网页时,有时会遇到乱码的情况。这是因为网页使用的编码方式与浏览器的默认编码方式不同,或者网页存在编码错误等因素引起的。本文将为您介绍HTML乱码的解决方法,希望能帮助您解决HTML乱码问题。一、选择正确的编码方式UTF-8是一...
    99+
    2023-05-14
  • php 文件下载文件名乱码怎么办
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php 文件下载文件名乱码怎么办PHP下载文件名解决乱码通过把Content-Type设置为application/octet-stream,可以把动态生成的内容当作...
    99+
    2024-04-02
  • eclipse php乱码怎么办
    本文操作环境:Windows7系统、Eclipse IDE 2020-06 R版、DELL G3电脑eclipse php乱码怎么办eclipse写php代码时中文乱码我是用editplus写的代码然后用eclipse打开出现中文乱码,这是...
    99+
    2016-06-12
    php 乱码
  • php gd 乱码怎么办
    本文操作环境:windows7系统、PHP7.1版、DELL G3电脑php gd 乱码怎么办解决GD中文乱码问题:今天仔细研究了下GD的一些相关技术,顺手也研究下GD中文乱码的问题。 使用GD库输出中文字符串,调用imagestring...
    99+
    2021-09-27
    php gd
  • php htmlentities 乱码怎么办
    本文操作环境:Windows7系统,PHP7.1版,Dell G3电脑。php htmlentities 乱码怎么办?php 中htmlentities导致中文无法查询问题在php中htmlspecialchars, 将特殊字元转成 HTM...
    99+
    2021-07-19
    php htmlentities
  • php cp936 乱码怎么办
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php cp936 乱码怎么办?php cp936转utf8中文编码转换汉字乱码问题的解决方案问题描述:今天遇到个问题,中文字符串 如 °£è¥¢¨é需要转换为 UT...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作