Работал я в 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 - и проблемы как не бывало. Спасибо.
[Ответ]