我正在尝试将某些报告从MSSQL 2005数据库转储到HTML,但是在尝试显示列名称(而不是列数据本身,正确显示)时出现了一个小问题在它们中加入了重音字符 - 它们被问号代替。
我在PHP下使用sqlsrv驱动程序,在IIS7下运行。 PHP脚本本身是UTF-8编码的。我正在连接到SQL服务器:
$connection_info = array("Database" => "ProjectManager", "UID" => DB_USER, "PWD" => DB_PASS , "CharacterSet" => "UTF-8");
$conn = sqlsrv_connect(DB_HOST, $connection_info) or die("FAIL");
运行查询后的第一件事是将列名转储到表中:
$qry = "EXEC [dbo].[dummy_report] @year=2012, @month=3";
$res = sqlsrv_query($conn, $qry);
foreach(sqlsrv_field_metadata($res) as $fieldData) {
echo "<th>".$fieldData['Name']."</th>";
}
这足以处理存储在数据库中的数据;列名 - 不是那么多:
通常情况下,我不打算在斯洛伐克语中命名数据库列,但我只是想显示存储过程的结果,我不太习惯将这些字段名称硬编码到PHP脚本中。
所以,charsets。 Wat do?
答案 0 :(得分:1)
我遇到了和你一样的问题。经过大量的谷歌搜索后,它变成了“用于SQL Server的PHP的Microsoft驱动程序”的BUG。