PHP mail 中文乱码的解决方式
程序员文章站
2022-03-30 16:00:46
...
主要是编码的问题:
解决办法就是: 读取的数据设置好编码方式; 发邮件的时候也指定编码方式;
先用函数base64_encode() 使用 MIME base64 对数据进行编码
标题字符串前加编码类型例如: =?UTF-8?B?
当然如果是gb2312的话就 =?GB2312?B?
标题字符串后加:?=
-----------我的供配置参考---------
<html> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <body> <?php if(strlen($_POST["from"]) > 1) //if "email" is filled out, send email { //send email $email = $_POST["from"] ; $mailto = $_POST["mailto"]; $subject = "=?UTF-8?B?" . base64_encode($_POST["subject"]) . "?="; $message = $_POST["message"] ; $header = 'MIME-Version: 1.0' . "\r\n" . "Content-type: text/html; charset=utf-8". "\r\n" . "From: <$email>"."\r\n"; //echo "mailto:$mailto<br />", "Subject: $subject<br />", "message:$message<br />", "From: $email<br />" ; mail("$mailto", "$subject", $message, "$header" ); echo "<br />Your mail has been sent ! Thank you for using our Mail system ...<br /> We shall go to main page in 3 seconds <br />"; } else{ echo "<center><h2>Welcome to Qunero-php Mail system </h2></center><br />"; echo '<form method="post" action="index.php"> From : <input type="text" name="from" /><br/ > MailTo : <input type="text" name="mailto" /><br /> Subject : <input type="text" name="subject" /><br /> Message : <br /><textarea name="message" rows="15" cols="80"> </textarea><br /> <input type="submit" /> </form>'; } ?> </body> </html>
上一篇: 前端面试经验总结
下一篇: ajax如何做出页面局部跳转功能
推荐阅读
-
JQuery异步获取返回值中文乱码的解决方法
-
关于Cookie中带有中文乱码报错的问题解决
-
Three.js使用THREE.TextGeometry创建三维文本中文乱码的问题如何解决?
-
Linux下程序库Ncurses显示中文乱码的解决方法
-
使用php实现下载生成某链接快捷方式的解决方法
-
解决asp.net core在输出中文时乱码的问题
-
Linux 中unzip解压时中文乱码的解决办法
-
解决3.01版的jquery.form.js中文乱码问题的解决方法
-
解决python3 HTMLTestRunner测试报告中文乱码的问题
-
通过过滤器(Filter)解决JSP的Post和Request中文乱码问题