Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2011, 09:32   #1
Prontit
Пользователь
 
Регистрация: 29.07.2011
Сообщений: 39
Вопрос Проблема с кодировкой

Добрый день!

Никак не могу разобраться с кодировкой. Имеется таблица с данными в UTF8 (MySQL), использую Delphi 2010 (UniDac) для работы (добавление/удаление данных). Здесь все нормально, все русские буквы видно. Проблема возникает когда пытаюсь импортировать данные в файл DBF, там необходима кодировка cp1251, чтобы дальнейшим с этим DBF могло работать другое ПО.
Подключаюсь к MySQL через UniDac (делаю запрос через UniQuery), подключаюсь к DBF через ADO (Visual FoxPro).

ADOTable1.FieldByName('TEXT').AsStr ing:=UniQuery1.FieldByName('TEXT'). AsString;

конечно, при такой записи все записывается в UTF8, а мне нужно cp1251....вот собственно и проблема

Заранее благодарю!
Prontit вне форума Ответить с цитированием
Старый 17.08.2011, 10:45   #2
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Попробуй
Код:
FieldByName('TEXT').AnsiString
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 17.08.2011, 10:56   #3
Prontit
Пользователь
 
Регистрация: 29.07.2011
Сообщений: 39
По умолчанию

Цитата:
Сообщение от chertovich Посмотреть сообщение
Попробуй
Код:
FieldByName('TEXT').AnsiString
безрезультатно
Prontit вне форума Ответить с цитированием
Старый 17.08.2011, 11:33   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Функция Utf8ToAnsi - не пробовали?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 17.08.2011, 11:57   #5
Prontit
Пользователь
 
Регистрация: 29.07.2011
Сообщений: 39
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Функция Utf8ToAnsi - не пробовали?
пробовал - не работает
Prontit вне форума Ответить с цитированием
Старый 17.08.2011, 12:09   #6
Prontit
Пользователь
 
Регистрация: 29.07.2011
Сообщений: 39
По умолчанию

неужели нет решения?(( может в самом SQL запросе прописать, чтобы он сразу вытаскивал в cp1251....или может есть еще какие-нибудь функции в Delphi. Дело в том, что я специально на 2010 перешел, потому что он по-умолчанию на UTF8, и без проблем работает с MySQL базой....а вот когда появилась необходимость вытаскивать данные в cp1251 и добавлять их в DBF, возникла такая проблема....

гугл ничего не говорит кроме UtfToansi, но почему когда ее использую, вообще ничего не выводит (пустое поле)...
Prontit вне форума Ответить с цитированием
Старый 17.08.2011, 12:28   #7
Prontit
Пользователь
 
Регистрация: 29.07.2011
Сообщений: 39
По умолчанию

буквы "АКМ" отображаются в DBF как "ЂЉЊ"
надо брать нормальный utf8 из mysql, перекодировать во всякие ЉЊЉЊЂЉ и пихать в DBF....подскажите, пожалуйста, как сделать...


неужели никто не знает???(

Последний раз редактировалось Prontit; 17.08.2011 в 13:16.
Prontit вне форума Ответить с цитированием
Старый 17.08.2011, 13:45   #8
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Может проблема в коде? какой код?
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 17.08.2011, 13:52   #9
Prontit
Пользователь
 
Регистрация: 29.07.2011
Сообщений: 39
По умолчанию

да код элементарный, сомневаюсь что там может быть что-то не правильно

//запрос в mysql
UniQuery1.SQL.Clear;
UniQuery1.SQL.Text:=('Select * from TB where id = 2;');
UniQuery1.Open;

//открываю таблицу для записи
ADOTable1.Open;
ADOTable1.Edit;
ADOTable1.Append;

ADOTable1.FieldByName('TEXT').AsStr ing:=UniQuery1.FieldByName('text'). AsString;

пробовал и Utf8ToAnsi, и En/DeCode и AsAnsiString
Prontit вне форума Ответить с цитированием
Старый 17.08.2011, 14:06   #10
Prontit
Пользователь
 
Регистрация: 29.07.2011
Сообщений: 39
По умолчанию

никогда бы не подумал что поменять кодировку так сложно...или просто я чего то не понимаю... . Всего то надо, из mysql базы вытащить данные, и впихнуть в DBF
Prontit вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с кодировкой Furyon PHP 3 13.04.2011 17:36
Проблема с кодировкой cheef PHP 6 02.12.2010 12:27
Проблема с кодировкой motorway PHP 11 02.10.2009 21:32
Проблема с кодировкой motorway Microsoft Office Excel 3 03.07.2009 22:27
Проблема с кодировкой GaJIbI4 Помощь студентам 7 05.03.2009 15:42