Php 将.mdb数据插入SQL时的编码问题

Php 将.mdb数据插入SQL时的编码问题,php,mysql,ms-access,pdo,Php,Mysql,Ms Access,Pdo,我正在尝试将.mdb文件的内容(从Microsoft Access)导出到MySQL数据库中 当我从.mdb文件中获取内容并将其回显到页面时,它看起来很好,就像标准文本一样。但是,当我使用PDO将其插入数据库时,会得到一个错误的字符串值错误。该字符串在INSERT子句中显示如下: \x41\x44\x20\x2d\x20\x57\x49\x4c\x44\x20\x42\x45\x41\x4e\x20\x43\x41\x46\xc9 我不完全确定为什么会发生这种情况,或者我需要做些什么来纠正它。

我正在尝试将.mdb文件的内容(从Microsoft Access)导出到MySQL数据库中

当我从.mdb文件中获取内容并将其回显到页面时,它看起来很好,就像标准文本一样。但是,当我使用PDO将其插入数据库时,会得到一个
错误的字符串值
错误。该字符串在INSERT子句中显示如下:

\x41\x44\x20\x2d\x20\x57\x49\x4c\x44\x20\x42\x45\x41\x4e\x20\x43\x41\x46\xc9
我不完全确定为什么会发生这种情况,或者我需要做些什么来纠正它。并非所有记录都会发生这种情况,只有一些记录

任何指示都会有帮助

解决方案

因为数据来自Microsoft Access数据库,所以它包含在UTF-8中无效的Microsoft Office特殊字符。所以我用下面的函数解析了每个字符串

iconv("cp1252","UTF-8", $str);

在某些文本字段中可能有引号或其他特殊字符。在插入之前转义文本

mysqli_real_escape_string($text)
  // or
mysql_real_escape_string($text)

查看OP了解实际解决方案

点击,点击,点击……水晶球启发我。。。。。。水晶球说我们需要看到你的代码来帮助你。其他一切都是纯粹的猜测。有点难做,我使用的是运行在
Symfony
之上的
Bolt
。所以这里有很多代码。这就很难弄清楚了。查看页面输出的源代码,查看它是否在那里编码并由浏览器进行解释。也尝试了,但它看起来像纯文本。明白了!Microsoft编码字符。这就是造成混乱的原因。我在Symfony框架中使用PDO,因此这将为我逃避字符串。这被接受,因为它触发了我的大脑寻找MS特定的字符。