Имя: Пароль:
1C
1С v8
v8: Результат Запроса в UTF8
,
0 vbh
 
22.08.12
09:17
Подключаюсь к базе MySQL. Внешнее соединение. Через консоль конструктором вывожу таблицу. Русские названия пишутся вопросами (???????),а латиница выводится нормально. В MySQL кодировка utf8_general_ci. Пробовал менять на koi8r,koi8u,cp1251 ничего не помогает. unicode в MySQL-нет.
Как получить результат запроса в нормальной кодировке? или как получить результат запроса в кодировке Utf8? может кто сталкивался...
1 vbh
 
22.08.12
09:19
строка соединения на всякий случай


   Соединение.СтрокаСоединения= "DRIVER={MySQL ODBC 3.51 Driver};SERVER=192.168.130.101;DATABASE=ktv;UID=LOGIN;PWD=PASSWORD;";
2 mikecool
 
22.08.12
09:21
емнип - для выбираемых данных можно указывать кодировку, но где это я видел - не помню, толи в мсскл, толи в пл-скл
3 Ненавижу 1С
 
гуру
22.08.12
09:22
utf8 это разве не юникод?
4 Maxus43
 
22.08.12
09:24
http://www.1c-galaxy.ru/forum4/topic436739/ (копия мисты, оригинал хз где)
и там замечательная фраза
>>Я набрал в гугле два слова "MySQL кодировка". Это разве так трудно?
5 vbh
 
22.08.12
09:27
(4) конвертировать в любой другой формат я могу и руками в самом MySQl. Вопрос в том что 1с ка  не понимает кодировки
6 vbh
 
22.08.12
09:27
(3) не вроде
7 shuhard
 
22.08.12
09:29
(5)[Вопрос в том что 1с ка  не понимает кодировки]
а при чём здесь 1С,
ты цепляешься через ODBC и кодировку надо менять либо в драйвере, либо в запросе
8 Maxus43
 
22.08.12
09:30
в запросе пример там есть:
CONVERT(`iArt` USING cp1251)
9 vbh
 
22.08.12
11:53
(7)
1) как изменять в драйвере не знаю, но в ODBC при создании DSN соединения попробовал указать cherecter Set = utf8, далее
строка соединения ="DSN=имя;SERVER=адрес;DATABASE=база;UID=логин;PWD=пароля;"
не подключался зараза...

2) [либо в запросе]
вот в теме то я и подразумевал как в запросе 1с не используя ADO запросить нужную кодировку. ответ никак - точнее делать подключение сразу с нужной кодировкой.

добавил в строку подключения "STMT=SET CHARACTER SET cp1251;"

получилось
Соединение.СтрокаСоединения= "DRIVER={MySQL ODBC 3.51 Driver};SERVER=192.168.*.*;DATABASE=***;UID=***;PWD=***;STMT=SET CHARACTER SET cp1251;";

плюс изменил кодировку в таблица в mySQL с utf на сp1251
всё заработало.

Всем СПАСИБО за помощь!
10 shuhard
 
22.08.12
11:55
(9)[ изменил кодировку в таблица в mySQL с utf на сp1251
всё заработало. ]
не спортивно
11 vbh
 
22.08.12
11:55
(10)
ну не хочет 1с utf8 читать
12 vbh
 
22.08.12
11:58
хотя щас проверил, действительно в таблицах mySQL можно не менять кодировку. Достаточно 1ске показать на cp1251
13 shuhard
 
22.08.12
12:04
(12) осталось запостить в Книгу знаний
14 acsent
 
22.08.12
12:05
3.51 не поддерживает утф, ставб 5.х
15 acsent
 
22.08.12
12:05
>>плюс изменил кодировку в таблица в mySQL с utf на сp1251
ППЦ
16 vbh
 
22.08.12
12:14
(15) ))) шаловливые ручки
17 acsent
 
22.08.12
12:14
(13) Эту х..ню в книгу знаний???
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.