我有一个简单的联系表单(姓名,电子邮件,主题,邮件),可以将邮件发送到电子邮件。我已经使用jQuery设置了客户端验证,并使用PHP脚本进行了服务器端验证。我已将它们与Ajax连接起来。它有效,但只有当我用拉丁字符插入数据时才会有效。
当我在西里尔文中插入数据时,相同的表单不起作用。它不发送任何消息。我在互联网上搜索了类似的主题,并在YT上搜索了一些教程,但是在4-5天后我仍然没有得到任何东西。也许这就像把一些代码放在.htaccess文件中,但我真的不知道。
答案 0 :(得分: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);
}