gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 22:10:07 24 4
gpt4 key购买 nike

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

$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 中使用 access 数据库 -> 我必须在我的大学项目中使用它:/

编辑:代码:

<!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>

最佳答案

解决方法:

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

关于php - 使用 ODBC 连接 MS Access 时如何更改连接字符集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13790669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com