一点上缺少字符编码

时间:2015-06-09 19:32:04

标签: php mysql pdo encoding utf-8

我正在尝试在mysql数据库中插入数据。这些数据通常都带有德语变元。

我正在使用这种方法:

first:  0.0531640987396
second :  0.0527780056
3rd :  0.0523271560669

如你所见,我已经在做一些调试了。 我从Excel .xls文件中获取数据。 print_r授予如下输出:

function insertMenue($content, $date) {
    $session = $_SESSION['aid'];
    global $pdo;
    $pdo->exec('SET CHARACTER SET utf8');
    $params = ["menue", "<p>".changeAttr($content)."</p>", $date, $session];
    // Check all your params are set...
    // Although you may want to consider checking these before entering this block
    print_r($params);
    echo "c".changeAttr($content);
    print_r("v".  changeAttr($content));

    $sql = "INSERT INTO menue( type
                             , content
                             , date
                             , creator
                             )
            VALUES( ?
                  , ?
                  , ?
                  , ?
                  )";
    try {
        $sth = $pdo->prepare($sql);
        $sth->execute($params);
    } catch (PDOException $e) {
        throw new pdoDbException($e);
    }
}

当我检查mysql数据库时,包括 和之后的所有内容都被删除了。 像:

Salat
****
Trutenpiccata Tomatensauce
Spaghetti
Gem�sebuffet
-
****
Saisonfr�chte

我尝试将插入方法中的数据编码为utf-8,并将数据库设置为utf-8:

 Salat
 ****
 Trutenpiccata Tomatensauce
 Spaghetti
 Gem

我在哪里错过了将数据编码为utf-8的要点?

1 个答案:

答案 0 :(得分:0)

你也需要将charset放在你的html代码中。 这是帮助我解决问题的原因;)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" /><!-- THIS IS WHAT NEEDED -->
    </head>
    <body>
    </body>
</html>

添加之后,我没有遇到任何问题。 我也在完整的数据库中使用UTF-8,所以这应该不是问题。