我有一个PHP表单,我正在使用PHPmailer将它发送到我的gmail帐户。 最近我在希伯来语中遇到了几个问题,我在我的收件箱attached example收到了乱码。 我现在怀疑这是一个长度问题,但我无法找到限制或限制的原因。 **正是希伯来人被骗了!英语保持不变。
<?php
error_reporting(0);
require_once('phpmailer/class.phpmailer.php');
$email = 'myname@gmail.com';
$subject = 'New Point Added';
$from = "autosender@mywebsite";
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="iso-8859-1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<?php if(isset($_POST['submit'])){
$msg = "שם המטייל/ת:<br> ".$_POST['hiker']."<br />";
$msg .= "מדינה: <br>".$_POST['country']."<br />";
$msg .= "חודש ושנה:<br> ".$_POST['dob']."<br />";
$msg .= "סוג:<br> ".$_POST['point']."<br />";
$msg .= "שם המקום:<br> ".$_POST['place']."<br />";
$msg .= "תיאור:<br> ".$_POST['description']."<br />";
$msg .= "מחיר:<br> ".$_POST['price']."<br />";
$msg .= "איך להגיע:<br> ".$_POST['howtoget']."<br />";
$msg .= "חוויות אישיות:<br> ".$_POST['personalexp']."<br />";
$msg .= "מיקום במפה:<br> ".$_POST['latitude']."";
$msg .= ",".$_POST['longitude']."<br />";
$headers = "From: $from" . "\r";
$headers .= "MIME-Version: 1.0" . "\r";
$headers .= "Content-type: text/plain; charset=ISO-8859-1";
$mail = new PHPMailer();
$mail->From = $from;
$mail->FromName = $from;
$mail->Subject = $subject;
$mail->Body = $msg;
$mail->AddAddress($email);
$mail->IsHTML(true);
$mail->headers = $headers;
if(isset($_FILES['file'])){
$file_to_attach = $_FILES["file"]["tmp_name"];
$mail->AddAttachment($file_to_attach , $_POST['hiker'].'-'.date('U').'-'.basename($_FILES["file"]["name"]));
}
$mail->Send();
//mail($email,$subject,$msg,$headers);
?>
答案 0 :(得分:0)
希伯来语肯定 无法在ISO-8859-1中使用,而且您正在放置的文字将会被破坏,就像您正在看到的一样。 PHPMailer默认为ISO-8859-1,如果您正在使用其他内容,必须告诉它。 使用UTF-8 ,并确保您传入的数据实际上是UTF-8,而不是其他希伯来语字符集,例如ISO-8859-8。使用UTF-8作为HTML中的字符集,并将PHPMailer设置为使用UTF-8作为其字符集,如下所示:
<meta charset="utf-8">
和
$mail->CharSet = 'UTF-8';