首頁  >  文章  >  後端開發  >  如何解決php mail正文亂碼問題

如何解決php mail正文亂碼問題

藏色散人
藏色散人原創
2021-09-13 10:04:022449瀏覽

php mail正文亂碼的解決方法:1、將讀取的資料設定好編碼方式為「UTF-8」;2、在發送郵件的時候也指定編碼方式為「UTF-8」即可。

如何解決php mail正文亂碼問題

本文操作環境:Windows7系統、PHP7.1版,DELL G3電腦

如何解決php 郵件正文亂碼問題?

PHP 郵件 中文亂碼的解決方式

#主要是編碼的問題:

解決方法是: 

#讀取的資料設定好編碼方式;發郵件的時候也指定編碼方式;

先用函數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 = &#39;MIME-Version: 1.0&#39; . "\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 &#39;<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>&#39;;
}
?>
</body>
</html>

推薦學習:《PHP影片教學

以上是如何解決php mail正文亂碼問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn