Я пытаюсь вывести некоторые отчеты в HTML из базы данных MSSQL 2005, но есть небольшая проблема при попытке отобразить столбец имена (не сами данные столбца, которые отображаются правильно), которые имеют акцентированные символы в них - они заменены на вопросительные знаки.
Я использую драйвер sqlsrv для PHP, работающий под 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>";
}
Это достаточно хорошо обрабатывает данные, хранящиеся в базе данных; Имена столбцов - не так много:
![enter image description here](https://i.stack.imgur.com/GPV6K.gif)
Обычно я бы не стал именовать столбцы базы данных на словацком языке, но я просто пытаюсь отобразить результат хранимой процедуры, и мне не очень удобно жестко кодировать эти имена полей в сценарии PHP.
Итак, кодировки. Ват делать?