SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 12.11.2009 13:45:35

Simba
Участник
Зарегистрирован: 07.09.2009
Сообщений: 10

Непонятка с кодировкой

Дано: сервер MySQL - база и все таблицы созданы в cp1251, все пишет и возвращает корректно. Случайно потребовалось создать view с возвращаемым параметром:

.....
concat(`main`.`Family`,_cp1251', ', `main`.`Year`,_cp1251'г.')
....

так почему-то позвращает в utf8?  Кстати, когда вьюшку делал, то там вставилось _utf8, это уж я сам руками поправил. Сейчас сохранено как 1251, а букву г русскую не выводит- выводит Pi

Что подправить-посмотреть?

Неактивен

 

#2 12.11.2009 17:08:38

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Непонятка с кодировкой

При создании представления учитывается кодировка (кстати, _cp1251 смысла писать
тоже нету, т.к. учитывается). Соответственно, самый простой способ — пересоздать
представление в нужной кодировке.

Ну и букву «г» выводит неправильно, потому что Вы создаете процедуру в консоли
utf8. В том смысле, что _cp1251'г.' — это «интерпретируй то, что написано в кавычках
так, как будто оно написано в 1251». А реально оно написано в utf8, поэтому такие
последствия. MySQL достаточно умный, пользуйтесь этим, а не пытайтесь задавить его
своим умом smile

Неактивен

 

#3 13.11.2009 08:49:58

Simba
Участник
Зарегистрирован: 07.09.2009
Сообщений: 10

Re: Непонятка с кодировкой

Хм... а как это исправить? Именно в части "... создать вьюшку в другой кодировке..."?
Сервер на винде, въюшку создал через Navicat 8, Правда! -> в свойствах соединения с сервером стоит encoding UTF8. Из за этого что ли? Но ведь все другое работает? Созданный запрос, к примеру, вернул с русской буквой.

Неактивен

 

#4 13.11.2009 12:51:22

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Непонятка с кодировкой

Ну, очевидно, нужен клиент, работающий в 1251, чтобы ввести русскую букву,
или вводить всё как есть, без указания кодировок, тоже должно работать
замечательно. В смысле — создавать в utf8, mysql сам всё будет перекодировать.

Неактивен

 

#5 28.11.2009 23:56:44

kiligin
Завсегдатай
Зарегистрирован: 28.11.2009
Сообщений: 48

Re: Непонятка с кодировкой

такая же проблема с шрифтами... есть база mysql. в нее из под делфовского приложения записал данные. возвращает данные тоже нормально... но вот незадача!!! почему-то не сравнивает upper(<поле>) = '<СТРОКА>'. постоянно возвращает nil... че делать???

Неактивен

 

#6 01.12.2009 14:49:03

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Непонятка с кодировкой

Опишите, пожалуйста, метод подключения и компоненты smile

Неактивен

 

#7 04.12.2009 03:54:07

kiligin
Завсегдатай
Зарегистрирован: 28.11.2009
Сообщений: 48

Re: Непонятка с кодировкой

есть компонента MySQL и MySQLClasses, написанная неким Виталием Лещенко (www.vitaliy.org)
  MySQL.Host := '127.0.0.1';     
  MySQL.Port := 3306;             
  MySQL.User := 'root';           
  MySQL.Password := '';  //пароль отсутствует. мое примечание

  MySQL.Database := DBname; //присваивание имени бд
 
  if MySQL.Database <> DBname then //если не равны значит бд отсутствует
    ShowMessage('База данных '+ DBname + ' отсутствует.'+
                #10#13+' Обратитесь к администратору.');

подключение происходит без траблов...

Неактивен

 

#8 04.12.2009 04:00:58

kiligin
Завсегдатай
Зарегистрирован: 28.11.2009
Сообщений: 48

Re: Непонятка с кодировкой

или как вообще из делфы нормально вставлять записи на русском в бд??? из-под мускула кирилица нормально вставляется и отображается, но эта же кирилица превращается в мусор в делфовском приложении...

может что посоветуете поюзать в связке delphi+mysql

Неактивен

 

#9 04.12.2009 09:26:56

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Непонятка с кодировкой

Думаю, тогда вопросы по работе компоненты стоит задать непосредственно Виталию.
Я использовал ADO + ODBC, вроде бы, оно работало неплохо.

Неактивен

 

#10 07.12.2009 01:34:26

kiligin
Завсегдатай
Зарегистрирован: 28.11.2009
Сообщений: 48

Re: Непонятка с кодировкой

Действительно ADO+ODBC работают лучше, при одинаковых условиях. Видимо, при использовании компоненты Виталия, шрифт в мускул направлялся напрямую. а с использованием odbc судя по всему, шрифт из делфы сначала преобразуется в известный шрифт мускула, а потом уже передается. )) короче фигня какая-то... хотя в самой базе что до что после один фиг козябли пишет вместо русского языка.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson