[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подключение к БД MS SQL Server
Undertaker
Доброго времени суток, уважаемые форумчане

Столкнулся с проблемой кодировки при подключении к MS SQL Server
Кодировка в самой базе CP-1251, у меня доступ только на чтение и потому поменять кодировку в базе не представляется возможным

Подключаюсь так:

$serverName = "serverName";
$connectionInfo = array( "Database"=>"DB", "UID"=>"user", "PWD"=>"pass", "CharacterSet"=>"UTF-8");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
$query ="SELECT [самая], [вишенка], [в], [том], [что], [все], [поля], [имеют], [русские], [имена] FROM [db].[dbo].[русские_блин]";
$result = sqlsrv_query($conn, $query);
$row=sqlsrv_fetch_array($result);
print_r ($row);


Такой запрос работает, и даже выводит русские символы, но не все. Русские символы выводятся только в содержимом полей, имена полей выводятся квадратами. т.е. как то так:

Array ([�������� ����� �������] => русские символы)
Вместо
Array ([русские символы] => русские символы)


Если код переиначить

$serverName = "serverName";
$connectionInfo = array( "Database"=>"DB", "UID"=>"user", "PWD"=>"pass");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
$query ="SELECT [самая], [вишенка], [в], [том], [что], [все], [поля], [имеют], [русские], [имена] FROM [db].[dbo].[русские_блин]";
$query=iconv("utf-8", "windows-1251", $query); //Без этого он отправляет крокозябры в запросе
$result = sqlsrv_query($conn, $query);
$row=sqlsrv_fetch_array($result);
print_r ($row);

То приходят такие данные

Array ([�������� ����� �������] => �������� ����� �������)
Вместо
Array ([русские символы] => русские символы)

Логично, конечно, но мне надо по другому
Как бы мне подружиться с базой, что бы я мог отправлять в неё запрос в кодировка cp-1251, а получать в utf-8
P.S. Остальная кодировка в норме, те текст в php файле utf-8, в заголовке прописан utf-8

_____________
Из отчета службы безопасности:
... по поводу взлома китайцами сервера Пентагона:
1) Каждый китаец попробовал один пароль.
2) Каждый второй пароль был - maodzedun.
3) На 657983241-й попытке сервер согласился что у него пароль - maodzedun
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.