Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/16: Рейтинг темы: голосов - 16, средняя оценка - 4.75
5 / 5 / 2
Регистрация: 28.02.2010
Сообщений: 127

IdHTTP или TIdMultiPartFormDataStream передает кириллицу в неправильной кодировке

27.10.2011, 03:53. Показов 3168. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа должна передавать на php страничку некоторые данные, а страничка записывает их в MySQL. Для этого, я с помощью IdHTTP передаю строку, вот код:
C++
1
2
3
TIdMultiPartFormDataStream  *PostData = new TIdMultiPartFormDataStream;
PostData->AddFormField("data", "hello_привет");
Memo1->Lines->Add(IdHTTP->Post("http://site.net/input.php", PostData));
В итоге, вместо "привет" в БД записываются знаки вопроса. Я думал, что у меня скрипт глюконутый, но потом попробовал предавать параметры методом POST через обычный html документ, все работало нормально. Поэтому, проблема в IdHTTP или TIdMultiPartFormDataStream.
Пишу в С++ builder 2010.
Помогите плиз.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.10.2011, 03:53
Ответы с готовыми решениями:

Вывод в неправильной кодировке
Здравствуйте. Подскажите, пожалуйста, почему если выводить строку через writeln, то она будет представляться в качестве каких-то непонятных...

Чтение с консоли в неправильной кодировке
Есть такой код: Process proc = new Process(); proc.StartInfo.CreateNoWindow = true; ...

Файл сохраняется в неправильной кодировке
Здравствуйте! if ($_FILES == 0) { $target = FF_UPLOADPATH . $screenshot; if (move_uploaded_file($_FILES,$target)) ...

6
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
27.10.2011, 05:31
или в кодировках
0
5 / 5 / 2
Регистрация: 28.02.2010
Сообщений: 127
27.10.2011, 14:51  [ТС]
Ну это понятно что проблема в кодиравкахх этих компонентов. Как ее решить?
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
27.10.2011, 18:31
перед тем, как передавать данные, нужно кириллицу и некоторые другие символы переводить в такой формат %XX, где XX - код символа в 16-й системе счисления. установи какой-нибудь анализатор трафика, чтобы было понятнее.
0
5 / 5 / 2
Регистрация: 28.02.2010
Сообщений: 127
28.10.2011, 16:45  [ТС]
эм, а можно поподробней? как это сделать?

Добавлено через 13 часов 45 минут
Сделал вот что:


C++
1
2
3
4
5
6
7
8
9
10
11
12
TIdMultiPartFormDataStream  *PostData = new TIdMultiPartFormDataStream;
UnicodeString   str = "привет";
UnicodeString   str2 ="";
TBytes  bytes_;
 
bytes_ = TEncoding::UTF8->GetBytes(str);
for (int i = 0; i < bytes_.Length; i++) {
    str2 += "%"+IntToHex(bytes_[i], 2);
}
PostData->AddFormField("data", str2);
 
Memo1->Lines->Add(IdHTTP->Post("http://site.net/input.php", PostData));
Теперь в БД записываются коды символов, к примеру, слово "привет": %D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1

Я что то пропустил?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
28.10.2011, 17:09
я все же смотрел бы в сторону UTF8 , в базе на сервере, в частности
0
5 / 5 / 2
Регистрация: 28.02.2010
Сообщений: 127
28.10.2011, 17:14  [ТС]
php работает на utf8, БД тоже ( MySQL charset: UTF-8 Unicode (utf8) )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.10.2011, 17:14
Помогаю со студенческими работами здесь

Переменная отображается в неправильной кодировке
Есть процедура, в которой входной параметр принимает значение Москва. Но эта переменная отображается в неправильной кодировке ...

Приходит ответ в неправильной кодировке
Идет Ajax запрос на php файл, он там обрабатывается и отправляет обратно русские слова, а приходят они в виде вопросиков, я так понимаю что...

Отправляет письмо в неправильной кодировке
при отправке данные, на почту приходят козявки и echo тоже их выводит..как это настроить? и еще вопрос, как после отправки закрыть эту...

Меню среды отображается в неправильной кодировке
Как исправить?

IMAP выдает list в неправильной кодировке
Привет всем! Пытаюсь научиться пользоваться IMAP, только уже на обычном запросе LIST произошла проблема: оно выдается в какой-то непонятной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru