Большой Воронежский Форум
» Программирование>Кодировки в mysql.
-=Женек=- 18:10 23.03.2009
Работал я в mysql 4.0 года 3 и горя не знал. Пишу по русски - что из компилятора, что в php - все замечательно выводится и на веб страницу и в phpmyadmin.
Трижды я пытался перейти на более современный версии - сталкивался с каким-то идиотизмом, но сроки так поджимали, что решал использовать стары добрый mysql4.0


Что я имею сейчас: mysql 6.0.9, phpmyadmin 3.1.2 ПРи установкле mysql выбираю кодировку cp1251.
Далее, в phpmyadmin везде где можно, в параметр "сравнение" выбираю cp1251_general_ci
Результат - русские буквы, если их использовать в самом phpadmin пишутся и читаются, однако при попытке создать запись русскими буквами в программе, которую я пишу в C++ Builder - генерируется ошибка "Incorrect string value:\xFB\xE2\xE0\xEF\xFB\xE2... for column fio at row 1"

ЧТо делать?

P.S. Ставлю кодировку в таблице utf8_general_ci - все пишется, но в phpmyadmin отображаются крякозяблики. [Ответ]
Yandex 18:19 23.03.2009
-=Женек=-, в С++ Builder указываешь в соединении кодировку то? Видимо билдер в utf-8 фигачит по умолчанию. [Ответ]
-=Женек=- 18:26 23.03.2009
А можно глупый вопрос? Ето где? Я использую TSQLConnection и TSQLQuery, а Билдер у меня - Codeguard 2007 - там некоторые вещи по другому. В настройках самого компонента должно быть или ручками писать? В данный момент я такого в компоненте не вижу. [Ответ]
-=Женек=- 18:27 23.03.2009
есть какой-то "localcode" который равен 0000 [Ответ]
-=Женек=- 20:55 23.03.2009
Сделал так:

Сообщение от :
SQLQuery->Close();
SQLQuery->SQLConnection = SQLConnection;
SQLQuery->SQL->Clear();
SQLQuery->SQL->Add("set names cp1251");
SQLQuery->ExecSQL();

SQLQuery->Close();
SQLQuery->SQLConnection = SQLConnection;
SQLQuery->SQL->Clear();
SQLQuery->SQL->Add("INSERT INTO people SET FIO='Получилось'");


И теперь замечательно пишутся без ошибок и по-русски читаю как таблицы с cp1251 так и с utf8 . [Ответ]
-=Женек=- 21:42 23.03.2009
Угу... а когда читаю то что записал - знаки вопроса ?????
ЧТо делать? [Ответ]
Yandex 07:16 24.03.2009
Тихо сам с собою я веду беседу

Читаешь в какие строки? Если проект Unicode (по умолчанию студия 2005+ создает именно Unicode проект), то обычные TCHAR строки Unicode, а ты читаешь ANSI из базы. Надо читать в ANSI строки или перекодировать.

Лучше спроси на sources.ru. Даже скорее всего поиск поможет.
Че конкретно делать в твоем случае не знаю, т.к. С++ Builder и mysql никогда не видел
[Ответ]
-=Женек=- 12:20 24.03.2009
В общем, скачал я DAC for MySQL - и проблемы как не бывало. Спасибо. [Ответ]
Вверх