Факультет имеет отношения «один ко многим» с Проектом.
Попытайтесь выполниться SET NAMES "charset"
после соединения.
Я не знаю что набору символов соответствовать Cyrillic_General_CI_AS
но попытка "кириллица"?
У меня всегда была лучшая удача с помощью utf8_general_ci через плату - для соединений, сопоставлений - все.
Однако у меня только есть тот опыт с MySQL и PostgreSql - не с SQL Server.
Относительно Вашего вопроса DSN - я не уверен.
Удачи!
Если Вы не установлены на PDO, используйте FreeTDS - иначе процедурные вызовы mssql_*. Это - одна из рекомендуемой работы arounds, пока PDO не фиксируется. Начиная с PHP 5.1.2, FreeTDS имеет mssql.charset-опцию.
Я заметил ту же проблему при реализации SQL server 2005 и PHP 5.x с использованием PDO. Когда я изменил поле nvarchar (MAX) на nvarchar (255), нечетные символы вопросительного знака перестали появляться. Я определенно считаю, что это связано с драйверами ODBC в PDO и MS SQL server. Когда вы неявно указываете максимальное количество символов в своем varchar, это решает проблему.
Мне пришлось сделать это, чтобы получить полезные данные из моих полей NVARCHAR в MSSQL:
$_ = iconv('Windows-1252', 'UTF-8', $_);