PHP字符集和\";

PHP字符集和\";,php,post,character-encoding,Php,Post,Character Encoding,所以,我的问题是,我试图通过PHP发送邮件。我希望所有这些帖子都在一行上。但是使用$header=“内容类型:text/plain;charset=utf-8\r\n”;这似乎是不可能的。当然,如果我删除了这段代码,我就无法在邮件中显示åäö。我已经做了两天了 <?php $to = "info@mywebsite.se"; $subject = "Bokning från hemsidan."; $header = "Content-type: text/plain; charset=

所以,我的问题是,我试图通过PHP发送邮件。我希望所有这些帖子都在一行上。但是使用$header=“内容类型:text/plain;charset=utf-8\r\n”;这似乎是不可能的。当然,如果我删除了这段代码,我就无法在邮件中显示åäö。我已经做了两天了

<?php

$to = "info@mywebsite.se";
$subject = "Bokning från hemsidan.";
$header = "Content-type: text/plain; charset=utf-8\r\n";
$header .= "From: bokning@mywebsite.se\r\n";
$body = "En bokning:" . "\n\n" .
    $_POST["namn"] . "\n" .
    $_POST["mobilnummer"] . "\n" .
    $_POST["hemnummer"] . "\n" .
    $_POST["email"] . "\n" .
    $_POST["gatuadress"] . "\n" .
    $_POST["postnummer"] . "\n" .
    $_POST["vaning"] . "\n" .
    $_POST["portkod"] . "\n" .
    $_POST["bokningsdag"] . "\n" .
    $_POST["byggstadning"] . "\n" .
    $_POST["flytthjalp"] . "\n" .
    $_POST["flyttstadning"] . "\n" .
    $_POST["typavbostad"] . "\n" .
    $_POST["fonsterputsning"] . "\n" .
    $_POST["kontorsstadning"] . "\n" .
    $_POST["rojningbortforsling"] . "\n" .
    $_POST["visningsstad"] . "\n" .
    $_POST["dodsbo"] . "\n" .
    $_POST["boyta"] . "\n" .
    $_POST["kallare"] . "\n" .
    $_POST["vind"] . "\n" .
    $_POST["totalkvm"] . "\n" .
    $_POST["garage"] . "\n" .
    $_POST["forrad"] . "\n" .
    $_POST["veranda"] . "\n" .
    $_POST["balkongglas"] . "\n" .
    $_POST["balkongejglas"] . "\n" .
    $_POST["friggebod"] . "\n" .
    $_POST["fakgatuadress"] . "\n" .
    $_POST["fakpostnummer"] . "\n" .
    $_POST["jarut"] . "\n" .
    $_POST["nejrut"] . "\n" .
    $_POST["meddelande"];


if($_POST){
    mail($to, $subject, $body, $header);
    $feedback = "Tack för din bokning! Vi kommer att kontakta dig inom kort via mail eller telefon för att bekräfta din bokning. Vid bråskande ärenden var vänlig ring kontoret. Våra telefontider är 8.00-12.30.";
}
?>

\r\n适用于电子邮件换行符,具体要求如下:

消息被分成几行字符。一行是一系列的 使用两个字符回车符分隔的字符 和线路馈电;也就是说,回车符(CR)字符(ASCII 值13),后跟换行符(LF)字符(ASCII 值10)。(托架返回/线路馈送对通常写入 本文件名为“CRLF”。)

另请参见:关于“低质量Unix MTA”要求\n而不是\r\n

在PHP中,
\r
是CR,
\n
是LF


我可能应该说明,这仅适用于
内容类型:text/plain
,但邮件系统应该创建为适合互联网工程任务组(包括上述部分)的所有相关RFC。如果改为发送HTML,请使用

根据php.net,必须用“\r\n”分隔每一行。

如其他人所述,\r\n是电子邮件标题的换行符。如果你看维基百科的“新行”页面,你会看到这个角色的几种表现形式

基于ASCII或兼容字符集的系统使用LF或 (换行符'\n',0x0A,十进制为10)或CR(回车符'\r', 0x0D,十进制13),或CR后跟LF(CR+LF, '\r\n',0x0D0A)

Unicode标准定义了大量 符合要求的应用应识别为线路终端:[4]
LF:线路馈电,U+000A

CR:回车,U+000D


您可以尝试在UTF-8正文中传递“\0\r\0\n”,看看是否能得到您希望的换行符。

这似乎不可能吗?当你尝试时,你到底看到了什么样的失败?发布失败的代码。发布错误消息。张贴故障的描述。发布复制步骤。似乎不可能的是将这两件事结合起来。也就是说,两人都能看到åäö之类的东西,并将邮件写在不同的行上,而不是像现在这样,你仍然需要回答我其余的评论。重复你自己并不能澄清事情。如果需要添加其他详细信息,请添加说明OK,我的失误,让我再试一次。我的这段代码生成了一封邮件,在这封邮件中,我希望所有信息都在单独的行中,这就是我使用“\n”的原因。但是没有$header=“内容类型:text/plain;charset=utf-8\r\n”;我在邮件里看不到åäö。但它确实如此。虽然它将邮件中的所有信息放在一行上,这使得阅读非常困难。我发布的代码就是失败的代码。它没有给我任何错误,但它发送的邮件结果并不像我希望的那样。但是它确实发送了它。好的。因此,听起来您想知道如何在UTF-8电子邮件中插入换行符,但这样做时,您会在电子邮件消息本身中获得值“åäö”。正确吗?
\r\n
仅适用于标题部分和MIME内容分隔符。消息正文可以有任何他们想要的换行符。
\r\n
仅用于标题部分和MIME内容分隔符。消息正文可以有任何他们想要的换行符。据我所知,GMail主机不适用于
\r\n
。它应该是单个的
\n
。从上的注释-如果未收到消息,请尝试仅使用LF(\n)。一些低质量的Unix邮件传输代理自动将LF替换为CRLF(如果使用CRLF,将导致CR加倍)。这应该是最后的手段,因为它不符合RFC 2822。