Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблема с кодировкой при получении данных из MS SQL Server
 
 автор: Somnium   (01.11.2005 в 23:27)   письмо автору
 
 

Проблема в следующем:
Данные, получаемые при помощи запроса из MS SQL Server отображаются почему-то в кодировке DOS (866). Существует ли какой-нибудь способ изменить кодировку получаемых данных на Windows-1251 ?

   
 
 автор: codexomega   (02.11.2005 в 00:08)   письмо автору
 
   для: Somnium   (01.11.2005 в 23:27)
 

http://softtime.ru/forum/read.php?id_forum=3&id_theme=8090&page=1

   
 
 автор: Somnium   (03.11.2005 в 00:38)   письмо автору
 
   для: codexomega   (02.11.2005 в 00:08)
 

Увы, но не помогло. И кстати у меня отображаются не знаки вопроса, а символы в кодировке DOS.
А на этот скрипт:

mssql_query ("set character_set_client = \'cp1251\'"); 
mssql_query ("set character_set_results = \'cp1251\'"); 
mssql_query ("set collation_connection = \'cp1251_general_ci\'");  

выдаётся следующее:
Warning: mssql_query() [function.mssql-query]: message: Line 1: Incorrect syntax near '='. (severity 15) in z:\home\localhost\www\index.php on line 20
Ну и так далее........
Может MS SQL не поддерживает подобного рода запросы............

   
 
 автор: codexomega   (03.11.2005 в 06:53)   письмо автору
 
   для: Somnium   (03.11.2005 в 00:38)
 

Действительно, передо мной мелькнуло MySQL.
Обычно, данные в MS SQL SERVER содержатся в кодировке UNICODE. Так что проблем отображения в браузерах быть не должно. Тем не менее, есть некоторые несовместимости с PHP, который может неправильно отображать поля типа NVARCHAR и NTEXT.
Функции set character_set работают только для MYSQL.
Для MS SQL SERVER они вроде и не нужны.
А в какой кодировке у вас сама страница?

   
 
 автор: Somnium   (05.11.2005 в 00:27)   письмо автору
 
   для: codexomega   (03.11.2005 в 06:53)
 

Страница в кодировке windows-1251.....
Но вот тут такой интересный момент наблюдается:
Отлаживая скрипт в "NuSphere phpED" полученные данные отображаются превосходно в кодировке windows, а вот скрипт, запущенный в обычном браузере, правильно отображаться не хочет. Я пробовал полностью заменять версию PHP, установленную на локальном сервере версией, установленной в NuSphere. В итоге никаких изменений......
В чём дело??? Ничего не пойму.....

   
 
 автор: Somnium   (05.11.2005 в 02:35)   письмо автору
 
   для: Somnium   (05.11.2005 в 00:27)
 

Всё! Проблема решена.
Оказалось нужно было полазить в настройках SQL Servera:
"Client Network Utility" -> "DB-Library Options" -> "Automatic ANSI to OEM conversion" (Снять галочку)

   
 
 автор: codexomega   (05.11.2005 в 02:53)   письмо автору
 
   для: Somnium   (05.11.2005 в 02:35)
 

Я только что нашел тот же самый ответ, хотел написать, но вы опередили. Да, пришлось попариться:)
Этот самый Client Network Utility запускается через Пуск->Программы->Microsoft SQL Server->Client Network Utility
А то будете искать неизвестно где:)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования