使用ODBC连接到MS Access时如何更改连接字符集?

时间:2012-12-09 19:01:36

标签: php sql ms-access unicode odbc

这就是我与数据库连接的方式:

$dbh = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\\xampp\\htdocs\\bd\\db\\icr.accdb;Uid=Admin");

在我的数据库中,我有数据和带有波兰字符的字段,因此仅当文件以ANSI编码时,sql查询才有效。但我的整个网站都有字符集utf8(也有很多波兰字符)。那么,有什么方法可以将数据库的字符集更改为utf8吗?

我正在尝试这个:

$dbh->exec("set names utf8");

和此:

$dbh = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\\xampp\\htdocs\\bd\\db\\icr.accdb;Uid=Admin", null, null, array(
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
  ));

但两者都不起作用。有什么想法吗?

//不要问我为什么用php访问数据库 - >我必须在我的大学项目中使用它:/

编辑: 代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<body>
<?php
try{
   // Connect
   $dbh = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\\xampp\\htdocs\\bd\\db\\icr.accdb;Uid=Admin");
        $dbh->exec("set names utf8");
    $sql = "SELECT * FROM Miasta";
                        $myFile = "testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
    foreach ($dbh->query($sql) as $row)
        {
echo $row['Nazwa'] .' - '. $row['IDWojewództwa'] . '<br />';
$stringData = $row['Nazwa'] .' - '. $row['IDWojewództwa'] . '<br />';
fwrite($fh, $stringData);
        }
fclose($fh);
    /*** close the database connection ***/
    $dbh = null;
}
catch(PDOException $e)
    {
    echo $e->getMessage();
    }
?>
</body>
</html>

3 个答案:

答案 0 :(得分:1)

溶液:

$tresc1 .= iconv("iso-8859-2","utf-8", $row['Nazwa'] .' - '. $row['IDWojewodztwa'] . '<br />');

答案 1 :(得分:0)

使用如下:

$dbh = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb  *.accdb)};Dbq=path\;Uid=Admin");
$dbh->exec("set names utf8");

答案 2 :(得分:-1)

您可以参考以下链接。这可能会对您有所帮助。&gt;&gt; http://docs.oracle.com/cd/E17952_01/refman-5.0-en/connector-odbc-configuration-connection-parameters.html

另请参阅&gt;&gt; http://www.herongyang.com/JDBC/JDBC-ODBC-MS-Access-Connection.html了解更多计划