1

我有一个简单的联系表格(姓名、电子邮件、主题、消息),可以将消息发送到电子邮件。我已经使用 jQuery 设置了客户端验证,使用 PHP 脚本设置了服务器端验证。我已经将它们与 Ajax 联系起来。它有效,但只有当我以拉丁字符插入数据时。

当我在 Cyrillic 中插入数据时,相同的表单不起作用。它不发送任何消息。我在网上搜索了类似的主题,并在 YT 上搜索了一些教程,但 4-5 天后我仍然一无所获。也许这就像将一些代码放在 .htaccess 文件中,但我真的不知道。

4

1 回答 1

3

这是一个基本的编码问题。确保您的表单设置为 POST 为 UTF-8:

<form method="post" action="/your/url/" accept-charset="UTF-8">
</form>

还要确保使用正确的标题传递您的页面:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

然后确保您发送的电子邮件带有正确的 UT8 标头。我找到了这段代码:

function mail_utf8($to, $subject = '(No subject)', $message = '', $header = '') {
  $header_ = 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/plain; charset=UTF-8' . "\r\n";
  mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header_ . $header);
}

来源:http ://bitprison.net/php_mail_utf-8_subject_and_message

于 2013-01-23T14:03:13.557 回答