powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / synapse + utf8 + Delphi5
19 сообщений из 19, страница 1 из 1
synapse + utf8 + Delphi5
    #39721700
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте,
Есть проблема с получением данных в Synapse (Delphi5)
Вот такой код:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
var 
  url: string;
  fs: TFileStream;
  http: THTTPSend;
begin
  url := 'ttps://translate.googleapis.com/translate_a/single?client=gtx&sl=ru&tl=en&dt=t&q=%DF';
  http := THTTPSend.Create;
  try
    if http.HTTPMethod('GET', URL) then
    begin
      fs := TFileStream.Create('test.json', fmCreate);
      try
        fs.CopyFrom(http.Document, 0);
      finally
        fs.Free;
      end;
    end;
  finally
    http.Free;
  end;
end;



Должен быть такой ответ в utf-8 (получил через браузер)
Код: plaintext
[[["I","Я",null,null,1]],null,"ru"]

А вместо этого получаю
Код: plaintext
[[["Гџ","Гџ",null,null,3]],null,"ru"]

Где искать проблему?

В тоже время запрос
Код: pascal
1.
  url := 'ttps://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl=ru&dt=t&q=I';


отрабатывает корректно:
Код: plaintext
[[["я","I",null,null,2]],null,"en"]

P.S. Версию Delphi менять не предлагайте
...
Рейтинг: 0 / 0
synapse + utf8 + Delphi5
    #39721705
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк ЕвгенийГде искать проблему?

"q=%DF" это никак не "Я" в utf-8.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
synapse + utf8 + Delphi5
    #39721777
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ttps:// это опечатка вообще или сейчас в примере?
...
Рейтинг: 0 / 0
synapse + utf8 + Delphi5
    #39721781
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён, это опечатка.
Дмитрий, по этой ссылке в браузере все работает
...
Рейтинг: 0 / 0
synapse + utf8 + Delphi5
    #39721783
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssl подключено?
...
Рейтинг: 0 / 0
synapse + utf8 + Delphi5
    #39721784
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всмысле ssl юнит от synapse плюс две dllки
...
Рейтинг: 0 / 0
synapse + utf8 + Delphi5
    #39721785
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён,

Да, openssl dll в папке с программой.
...
Рейтинг: 0 / 0
synapse + utf8 + Delphi5
    #39721787
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не забудьте USES ssl_openssl
...
Рейтинг: 0 / 0
synapse + utf8 + Delphi5
    #39721884
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как ты ему отправляешь U+00DF Latin small letter Sharp S (ß), так и получаешь
...
Рейтинг: 0 / 0
synapse + utf8 + Delphi5
    #39721986
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2,

Я отправляю не "U+00DF", а %DF - "Я" в 1251
Если заменить на q=%D0%AF
То ответ тоже ошибочный

Запрос выглядит сейчас так:
Код: pascal
1.
url := 'https://translate.googleapis.com/translate_a/single?client=gtx&sl=ru&tl=en&dt=t&q='+EncodeURLElement(AnsiToUtf8(Edit1.Text));


И кстати, в хроме без проблем работает как вариант "%DF", так и "%D0%AF"

У меня эта ошибка повторяется на D5 и D7.
У кого-то это вообще работает?
...
Рейтинг: 0 / 0
synapse + utf8 + Delphi5
    #39722020
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот простейший проект с ошибкой для D7
...
Рейтинг: 0 / 0
synapse + utf8 + Delphi5
    #39722032
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк Евгений,

Может, быстрее пройтись по библиотеки под отладкой?
...
Рейтинг: 0 / 0
synapse + utf8 + Delphi5
    #39722034
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747Может, быстрее пройтись по библиотеки под отладкой?
Дошел до вызова recv из dll - дальше моих знаний не хватает
...
Рейтинг: 0 / 0
synapse + utf8 + Delphi5
    #39722044
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк ЕвгенийДошел до вызова recv из dll

Отладку надо было начинать со сравнения запроса, оправляемого браузером и твоей программой.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
synapse + utf8 + Delphi5
    #39722118
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк ЕвгенийВасилий 2,
Я отправляю не "U+00DF", а %DF - "Я" в 1251

А каким макаром сервер узнает, что ты ему пихаешь запрос именно в 1251?
...
Рейтинг: 0 / 0
synapse + utf8 + Delphi5
    #39722466
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк ЕвгенийЯ отправляю не "U+00DF", а %DF - "Я" в 1251
Все веб АПИ работают с UTF, никаких 1251. Это касается как запросов, так и ответов.
...
Рейтинг: 0 / 0
synapse + utf8 + Delphi5
    #39722483
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDi,

Я заменил на q=%D0%AF
Результат тот же.
И кстати почему в браузере работает с %DF?
...
Рейтинг: 0 / 0
synapse + utf8 + Delphi5
    #39722492
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк ЕвгенийИ кстати почему в браузере работает с %DF?

Потому что браузер отсылает правильные заголовки в запросе.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
synapse + utf8 + Delphi5
    #39722510
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за помощь. Проблема была в отсутствии User-Agent

Так работает
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
var 
  url: string;
  fs: TFileStream;
  http: THTTPSend;
begin
  url := 'ttps://translate.googleapis.com/translate_a/single?client=gtx&sl=ru&tl=en&dt=t&q=%DF';
  http := THTTPSend.Create;
  try
    http.Headers.Add('User-Agent: Mozilla/5.0');
    if http.HTTPMethod('GET', URL) then
    begin
      fs := TFileStream.Create('test.json', fmCreate);
      try
        fs.CopyFrom(http.Document, 0);
      finally
        fs.Free;
      end;
    end;
  finally
    http.Free;
  end;
end;
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / synapse + utf8 + Delphi5
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]