SQL Server查询在一些奇怪的ascii字符上失败

时间:2013-04-08 12:59:18

标签: php sql-server pdo

我有一个从我的邮箱中提取电子邮件并将其保存在我的数据库中的功能。对于95%的查询,一切正常,但对于某些查询失败并出现错误:

  

警告:PDOStatement :: execute():message:未公开引用   在字符串'

之后标记

我能够跟踪导致问题的字符。看起来其中一个是ASCII 160和ASCII 147.当我在电子邮件上运行一个简单的str_replace时,我能够正确保存文本而没有错误。为什么会导致问题?

    $body = $this->get_part($imap, $b, "TEXT/HTML");
    if($body == "")
    {
        $body = $this->get_part($imap, $b, "TEXT/PLAIN");
    }
    $header = imap_headerinfo($imap, $b);
    $subject = $header->subject;
    $fromaddress = $header->fromaddress;
    /////////////////////////////
    $data = array('content'=>$body);
    $query = $PDO->prepare('insert into [tbl_test] (content) values (:content)');
    $query->execute($data);
    break;

1 个答案:

答案 0 :(得分:0)

在保存查询之前,

uth8_encode()解决了这个问题。