尝试在php中设置header(),以便页面可以显示UTF-8字符

尝试在php中设置header(),以便页面可以显示UTF-8字符,php,forms,email,character-encoding,Php,Forms,Email,Character Encoding,我把这个php脚本放在它自己的文件中,与一个联系人表单一起工作。php如下所示: <?php header('Content-type: text/plain; charset=utf-8'); $name = $_POST['name']; $email = $_POST['email']; $message = $_POST['message']; $from = 'From:test@127.0.0.1'; $to = 'examp

我把这个php脚本放在它自己的文件中,与一个联系人表单一起工作。php如下所示:

<?php
    header('Content-type: text/plain; charset=utf-8');

    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $from = 'From:test@127.0.0.1'; 
    $to = 'example@stackoverflow.com'; 
    $subject = 'Ang. Website';

    $body = "From: $name\n E-Mail: $email\n Message:\n $message";

    if ($_POST['submit']) {              
        if (mail ($to, $subject, $body, $from)) { 
        echo '<p>Ditt meddelande har skickats! Klicka på bakåt för att komma tillbaka till Microscopium.</p>';
    } else { 
        echo '<p>Någonting gick fel, var vänlig försök igen!</p>';
    }
    } 
?>

但错误消息仍然如下所示:

NÃngting gick fel,var vÃnlig gÃylbaka och fÃrsÃk igen

HTML头看起来像这样,如果这很重要的话

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="stylesheet.css">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="jq/effects.js"></script>
    <script src="mail.php"></script>
    <title>Microscopium</title>
</head>

显微镜

您需要确保php文件存储为UTF-8。

您可以使用


确保它在UTF-8上


正如jgroenen所说:确保您的php文件存储为UTF-8。

Hmm,我在sublime中使用了“编码-->UTF-8保存”,但仍然得到了无效字符。好吧,这里似乎有其他问题。我将您的代码添加到php中,并注释掉了if/else,但仍然显示错误消息?您可以尝试的另一件事是回显utf8_编码(“您的字符串”);让我知道你的结果。我很愚蠢,它一直在起作用。我正在编辑本地文件,但正在本地主机上测试该文件。现在一切都好了!
<?php
/* Set internal character encoding to UTF-8 */
mb_internal_encoding("UTF-8");

/* Display current internal character encoding */
echo mb_internal_encoding();
?>