【发布时间】:2019-08-01 06:48:30
【问题描述】:
我的网站上有一个 PHP 表单。它从 HTML 输入元素中收集文本字符串,然后将文本发送到我的邮箱。但是,当人们用其他语言输入文本时,电子邮件就会出现乱码。文本在 Web 浏览器中似乎没问题。甚至还有一些 JavaScript 代码可以获取/设置其中的一些表单字段,而且似乎这样做是正确的。
也许 PHP 代码没有将文本视为 unicode?还是使用错误的编码将文本发送到我的邮箱?我会很感激一些帮助,谢谢。
我已经添加了
header("Content-Type: text/html; charset=utf8");
到 PHP 文件的顶部。
这是使用 POST 获取输入值的 PHP 表单的一部分。
$name = $_POST["name"];
$email = $_POST["email"];
$message = $_POST["message"];
$titletxt = $_POST["titletxt"];
$titleurl = $_POST["titleurl"];
$legend = $_POST["legend"];
$command = $_POST["command"];
$binding = $_POST["binding"];
$layout = $_POST["layout"];
这是通过电子邮件向我发送文本的 PHP 表单的一部分:
mail
(
"blahblah@blah.com",
"VGKD Bindings Submission",
"NAME:\t\t" . $name . "\n" .
"EMAIL:\t\t" . $email . "\n" .
"MESSAGE:\t" . $message . "\n" .
"GAME TITLE:\t" . $titletxt . "\n" .
"GAME URL:\t" . $titleurl . "\n" .
"LAYOUT:\t\t" . $layout . "\n\n" .
"LEGENDS:\n" . $legend . "\n\n" .
"COMMANDS:\n" . $command . "\n\n" .
"BINDINGS:\n" . $binding . "\n\n"
);
【问题讨论】: