【问题标题】:PHP email encodingPHP 电子邮件编码
【发布时间】:2013-09-28 13:36:05
【问题描述】:

任何想法我的代码可能有什么问题?每次有人使用国家字符(例如:ž、š、ô、í)填写我的网络表单时,PHP 脚本创建的电子邮件如下所示:

我尝试通过在标题中添加“charset=utf-8”来修复它,但这似乎不起作用。

"MÃ"ŽE BYŤ ná možnosÅ¥"

我的代码:

<?php
if($_POST['parse_var'] == "contactform"){

   $emailTitle = 'Application Form';
   $yourEmail = 'myMail@myMailService.com';

   $nameField = $_POST['name'];
   $streetField = $_POST['street'];
   $cityField = $_POST['city'];
   $ZIP_codeField = $_POST['ZIP_code'];
   $cell_phoneField = $_POST['cell_phone'];
   $emailField = $_POST['email'];



   $body = <<<EOD
<br><hr><br>
Parent: $nameField <br />
Street: $streetField <br />
City: $cityField <br />
ZIP: $ZIP_codeField <br />
Mobile: $cell_phoneField <br />
Email: $emailField <br />


EOD;

    $headers = "From: skola@athena-academy.sk\r\n";

    $headers .= "Reply-To: $emailField\r\n";

        $headers.= "Content-Type:text/html; charset=utf-8\r\n"; 

    $success = mail("$yourEmail", "$emailTitle", "$body", "$headers");  

   $sent = "Your email has been sent";


}

?>

【问题讨论】:

  • 你的表单也是 UTF-8 吗?
  • 我想是的。 ...等等。
  • 当你进入表单时,浏览器是否真的在编码菜单中显示了UTF-8?
  • 我不知道在哪里检查。
  • 每个浏览器都有一个“编码”菜单,显示浏览器对当前站点使用的编码。它可以命名为“字符集”

标签: php email utf-8 character-encoding


【解决方案1】:
<?php

mb_internal_encoding("UTF-8");
mb_http_output( "UTF-8" );
ob_start("mb_output_handler");

?>

【讨论】:

  • 我是一个绝对的 PHP 菜鸟 - 我按照 youtube 教程“创建”了我的脚本。您能告诉我将这三行代码粘贴到哪里吗?
  • 试着把它放在首页或你的页面(index.php,contact.php)随便什么。
  • mb_internal_encoding("UTF-8"); mb_http_output("UTF-8"); ob_start("mb_output_handler");
猜你喜欢
  • 2011-01-16
  • 2012-12-14
  • 1970-01-01
  • 1970-01-01
  • 2016-01-15
  • 1970-01-01
  • 2014-06-14
  • 1970-01-01
  • 2013-04-01
相关资源
最近更新 更多