Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.04.2013, 22:11
Аватар для Помидоркин
Помидоркин Помидоркин вне форума
Начинающий
 
Регистрация: 07.10.2012
Адрес: Дедовск
Сообщения: 110
Версия Delphi: Rio 10.3
Репутация: 10
По умолчанию IdHTTP1.Get кодировка в utf-8

С помощью IdHTTP1.Get передаю запрос:
http://api.smsfeedback.ru/messages/v2/send/?phone=%2B' + phonenomer + '&text=' + tekst
параметр text должен быть utf-8 в результате на phonenomer приходит смс

разумеется кирилица приходит крокозябрами, следующие варианты не помогли:
Код:
var tekst :UTF8String;
Код:
tekst:= AnsiToUtf8(Memo1.Lines.Text);
Код:
tekst:= UTF8Encode(Memo1.Lines.Text);

и даже
Код:
uses
  ... IdURI;

...................

tekst:= TIdURI.PathEncode(Memo1.Lines.Text);
понятие не имею что это такое, на одном из форумов советовали
что самое интересное - при любых раскладах категорически не воспринимает пробел, хоть кирилицей набирать текст в мемо, хоть латиницей - прога зависает на
Код:
Edit1.Text:= IdHTTP1.Get('http://api.smsfeedback.ru/mess ...
секунд через 50-70 отвисат с радостным сообщением что соединение успешно завершено
подозреваю что дело в кодировке параметра Memo1.Lines.Text : String
может быть как-то посимвольно перекодировать, только как? сообразить не могу
Еще деталь - страница php в кодировке utf-8 без BOM отправляет сообщение без проблем

Последний раз редактировалось Помидоркин, 26.04.2013 в 23:52.
Ответить с цитированием
  #2  
Старый 27.04.2013, 11:39
ProDaNTe ProDaNTe вне форума
Новичок
 
Регистрация: 25.12.2011
Сообщения: 75
Репутация: 10
По умолчанию

Код:
tekst:= AnsiToUtf8(Memo1.Lines.Text);
Edit1.Text:= IdHTTP1.Get(PChar('http://api.smsfeedback.ru/mess ...
Я конечно не знаю точно, так как пользуюсь wininet, но так не пробывал?
Ответить с цитированием
  #3  
Старый 27.04.2013, 17:57
Аватар для Помидоркин
Помидоркин Помидоркин вне форума
Начинающий
 
Регистрация: 07.10.2012
Адрес: Дедовск
Сообщения: 110
Версия Delphi: Rio 10.3
Репутация: 10
По умолчанию

Спасибо, но не помогло
пытаясь определить причину методом научного тыка, отправил два сообщения, плучилось так: отправленное сообщение, получено в смс
http://www.delphisources.ru/forum/at...d=136706930 7
я так понимаю string - это массив символов char каждый из которых кодируется одним ИЛИ больше байтами, в данном случае, инди отправляет сайту последовательность char-ов, на каждый из которых выделено, например два байта, страница сайта считает что каждый байт это один символ, вот и получается что на каждый отправленный символ приходят два (глупость сморозил?)
главное: использование инди вовсе не обязательно, какие еще есть варианты для дельфи 7?
Изображения
Тип файла: jpg twomasege.jpg (31.3 Кбайт, 17 просмотров)
Ответить с цитированием
  #4  
Старый 28.04.2013, 06:49
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,029
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от Помидоркин
...я так понимаю string - это массив символов char каждый из которых кодируется одним ИЛИ больше байтами, в данном случае, инди отправляет сайту последовательность char-ов, на каждый из которых выделено, например два байта, страница сайта считает что каждый байт это один символ, вот и получается что на каждый отправленный символ приходят два (глупость сморозил?)
главное: использование инди вовсе не обязательно, какие еще есть варианты для дельфи 7?

Странно, если string в Delphi 7, то там один байт на символ.
Если только в инди не стоит перекодировка через WideString, в чем я глубоко сомневаюсь.

Ну попробуй Synapse.
Ответить с цитированием
  #5  
Старый 28.04.2013, 14:00
Аватар для Помидоркин
Помидоркин Помидоркин вне форума
Начинающий
 
Регистрация: 07.10.2012
Адрес: Дедовск
Сообщения: 110
Версия Delphi: Rio 10.3
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Ну попробуй Synapse.
можно поподробней?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:08.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter