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

时间:2013-01-23 14:01:25

标签: php jquery ajax character-encoding

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

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

1 个答案:

答案 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);
}

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