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

Форум MySQL

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

 

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

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

тема: Как корректно отобразить результат запроса ODBC(кодировка) ?
 
 автор: antidot   (07.12.2006 в 11:52)   письмо автору
 
 

Как корректно отобразить результат запроса ODBC(кодировка)?

Cmd.CommandText=
"SELECT personal.NAME
|FROM personal
|ORDER BY personal.NAME ASC ";

результат выдается в виде странного вида крючков, хотя символы цифр выдаются верно.

   
 
 автор: cheops (из кафе)   (07.12.2006 в 16:18)
 
   для: antidot   (07.12.2006 в 11:52)
 

А как заполняли базу данных из какого клиента? В какой кодировке текст лёг в базу данных?

   
 
 автор: antidot   (07.12.2006 в 16:21)   письмо автору
 
   для: cheops (из кафе)   (07.12.2006 в 16:18)
 

а где это можно посмотреть? я делаю запрос по ОДБС (извините, что пишу на русском, у меня винда глючит, язык ввода надо все время вручную переключать)
у меня есть РНРмуАдмин, у него не знаю, где кодировки смотреть. Запрос делаю из 1С:

   
 
 автор: antidot   (07.12.2006 в 16:21)   письмо автору
 
   для: antidot   (07.12.2006 в 16:21)
 

Процедура Сформировать()
Соединение = СоздатьОбъект("ADODB.Connection");
//ConnectionString ="DSN=userbase; STMT=SET CHARACTER SET cp1251";
ConnectionString =
"DRIVER={MySQL ODBC 3.51 Driver};SERVER="+"localhost"+";DATABASE="+"guard"+";UID="+"root"+";PWD="+"root"+";OPTION="+3+";STMT=SET CHARACTER SET cp1251";

Соединение.ConnectionTimeOut =600;
Соединение.CursorLocation = 3;

Попытка
Соединение.Open(ConnectionString);
Сообщить(ConnectionString +" успешное соединение!");
Исключение
Предупреждение("Невозможно установить соединение");
КонецПопытки;

Cmd=СоздатьОбъект("ADODB.Command");
Cmd.ActiveConnection=Соединение;


Cmd.CommandText=
"SELECT personal.NAME
|FROM personal
|ORDER BY personal.NAME ASC ";

Rs=Cmd.Execute();
Rs.MoveFirst();
Пока Rs.EOF() = 0 Цикл

Value1 = Rs.Fields("NAME").Value;
сообщить(Value1);

Rs.MoveNext();
КонецЦикла;

//Текст.Закрыть();
Сообщить("Все сделано.");

КонецПроцедуры

   
 
 автор: antidot   (07.12.2006 в 16:22)   письмо автору
 
   для: antidot   (07.12.2006 в 16:21)
 

результат имеет вид:
Атьман О Ю
РђСѓРєРёРЅ Р’ Рњ
Вильман К А
Яшина Е Н

   
 
 автор: antidot   (07.12.2006 в 16:23)   письмо автору
 
   для: antidot   (07.12.2006 в 16:22)
 

база заполнялась из программки, написаной на Джаве, не мной

   
 
 автор: antidot   (07.12.2006 в 16:25)   письмо автору
 
   для: antidot   (07.12.2006 в 16:23)
 

смена кодировке в коннекшн стринг вид возвращаемого результата не меняет!!!

   
 
 автор: cheops (из кафе)   (07.12.2006 в 16:30)
 
   для: antidot   (07.12.2006 в 16:22)
 

Похоже на UTF8, попробуйте перед выполнением SELECT-запроса настроить кодировку соединения при помощи запроса
SET NAMES 'utf8'

   
 
 автор: antidot   (07.12.2006 в 16:37)   письмо автору
 
   для: cheops (из кафе)   (07.12.2006 в 16:30)
 

Cmd.CommandText="SET NAMES 'utf8'";
Rs=Cmd.Execute();

добавил, результат без изменений

   
 
 автор: antidot   (07.12.2006 в 16:38)   письмо автору
 
   для: antidot   (07.12.2006 в 16:37)
 

МИСТИКА!

   
 
 автор: antidot   (07.12.2006 в 16:56)   письмо автору
 
   для: antidot   (07.12.2006 в 16:38)
 

нашол бумажку, которую автор накорябал, пишет, что там UTF-8, а фигли толку, выводит какой-то бред! Причом ровно тот-же самый, что и раньше.

   
Rambler's Top100
вверх

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