无法以西里尔文发送表单数据



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

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

这是一个基本的编码问题。确保您的表单设置为以 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' . "rn" . 'Content-type: text/plain; charset=UTF-8' . "rn";
  mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header_ . $header);
}

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

最新更新