[С++ Builder] IdHTTP Кодировка

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by 0pTik, 28 Sep 2010.

  1. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    Чет не могу понять , как в управлять в IdHTTP кодировкой , посылаю на форум текст "мама" приходит ????

    Версия билдера 2009

    Шлю через MultiPartFormData
     
    #1 0pTik, 28 Sep 2010
    Last edited: 28 Sep 2010
  2. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    Кодировка на сайте windows-1251
     
  3. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    В теме написано

    Версия билдера 2009
     
  4. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Сорри, когда первый раз тему смотрел не было, а потом не перечитал
    В общем объявление у метода AddFormField такое:
    PHP:
    procedure AddFormField(const AFieldNameAFieldValuestring; const ACharsetstring '');
    Что передается у тебя? Передаешь нужную кодировку?

    Можно еще самому попробовать перекодировать.
    Пример на дельфи:
    PHP:
      s := StringOf(TEncoding.Convert(TEncoding.UTF8TEncoding.ASCIIBytesOf(s)));
    тут s - исходная строка и строка для результата, TEncoding.UTF8 - исходная кодировка, TEncoding.ASCII - кодировка в которую конвертировать
    Попробуй разные варианты, я так-то в кодировках не силен

    И кстати, русские символы надо кодировать в URL по идее
     
  5. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    У меня передает так

    vk->AddFormField("message",bb->Text);

    где bb->Text это StringList

    приходит на сервер вопросы и в снифаке то же они


    Пробую
    [BCC32 Error] Unit1.cpp(325): E2108 Improper use of typedef 'TEncoding'

    PHP:
      s := StringOf(TEncoding.Convert(TEncoding.UTF8TEncoding.ASCIIBytesOf(s)));
     
  6. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    так я же тебе пример на дельфи дал, т.к. С++ не знаю, а RTL у них одна. Есстественно тип в С++ не будет называться TEncoding. В-общем надо на С++ переделывать
    так пробуй
     
  7. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    так нельзя , только 2 параметра можно


    TEncoding - создается она нормально
     
  8. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Значит у тебя другая версия Indy, у меня можно и нужно
     
  9. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    Посмотри какой у тебя инди

    Умен я 10 2 5
     
  10. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    10.5.7
    Может дело еще не в этом. Ты глянь какую charset Indy передает по дефолту в сниффере
     
  11. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    Никакой реакции , я все это пробовал ,и кодировку отсылаю как браузер , и сжатие
     
  12. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    кхм вообще-то есть такая тема как URL Encoding (rfc1738)...
     
    _________________________
  13. 090808

    090808 Member

    Joined:
    15 Mar 2009
    Messages:
    171
    Likes Received:
    46
    Reputations:
    10
    utf8encode('мама');
     
    1 person likes this.
  14. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    IdMultiPartFromData автоматически кодирует в URL насколько мне известно
    ТС, raw stream из сниффера выложи сюда, скрин сделай как это хоть выглядит
     
  15. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17

    Браузер

    PHP:
    POST /posting.php HTTP/1.1
    Host
    :*********
    User-AgentMozilla/5.0 (WindowsUWindows NT 5.1rurv:1.9.1.11Gecko/20100701 MRA 5.6 (build 03278Firefox/3.5.11 (.NET CLR 3.5.30729sputnik unknown
    Accept
    text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: ru,en-us;q=0.7,en;q=0.3
    Accept-Encoding: gzip,deflate
    Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 300
    Connection: keep-alive
    /posting.php?mode=newtopic&f=172
    Cookie: bb_data=a%3A3%3A%7Bs%3A2%3A%22uk%22%3Bs%3A12%3A%22GCmG1HGBqk0g%22%3Bs%3A3%3A%22uid%22%3Bi%3A2%3Bs%3A3%3A%22sid%22%3Bs%3A20%3A%22oYS3Kc911HVkaqwojPni%22%3B%7D; bb_t=a%3A6%3A%7Bi%3A181%3Bi%3A1285680323%3Bi%3A182%3Bi%3A1285680576%3Bi%3A183%3Bi%3A1285682289%3Bi%3A184%3Bi%3A1285683107%3Bi%3A185%3Bi%3A1285685058%3Bi%3A186%3Bi%3A1285696729%3B%7D; bb_dbg=1
    Content-Type: multipart/form-data; boundary=---------------------------123821742118716
    Content-Length: 2033

    -----------------------------123821742118716
    Content-Disposition: form-data; name="mode"

    newtopic
    -----------------------------123821742118716
    Content-Disposition: form-data; name="f"

    172
    -----------------------------123821742118716
    Content-Disposition: form-data; name="add_attachment_body"

    0
    -----------------------------123821742118716
    Content-Disposition: form-data; name="posted_attachments_body"

    0
    -----------------------------123821742118716
    Content-Disposition: form-data; name="subject"

    Тест
    -----------------------------123821742118716
    Content-Disposition: form-data; name="fontFace"

    -1
    -----------------------------123821742118716
    Content-Disposition: form-data; name="codeColor"

    black
    -----------------------------123821742118716
    Content-Disposition: form-data; name="codeSize"

    12
    -----------------------------123821742118716
    Content-Disposition: form-data; name="helpbox"

    Ordered list: [list|=1|a]text[/list] Tip: you can use [*] to insert bullet
    -----------------------------123821742118716
    Content-Disposition: form-data; name="message"

    Тест
    -----------------------------123821742118716
    Content-Disposition: form-data; name="post"

    Отправить
    -----------------------------123821742118716
    Content-Disposition: form-data; name="attach_sig"

    on
    -----------------------------123821742118716
    Content-Disposition: form-data; name="topictype"

    0
    -----------------------------123821742118716
    Content-Disposition: form-data; name="fileupload"; filename=""
    Content-Type: application/octet-stream


    -----------------------------123821742118716
    Content-Disposition: form-data; name="filecomment"


    -----------------------------123821742118716
    Content-Disposition: form-data; name="poll_title"


    -----------------------------123821742118716
    Content-Disposition: form-data; name="add_poll_option_text"


    -----------------------------123821742118716
    Content-Disposition: form-data; name="poll_length"


    -----------------------------123821742118716--

    Cофт

     
  16. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    Щас ставлю 2010 билдер посмотрю как там
     
  17. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Скорее всего также будет, т.к. тоже юникод
    Ты инди то обновил?
     
  18. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17

    Нет не обновлял , дай ICQ свой , а то так не удоно или мне напиши 635558955

    P.S Да в 2010 все то ж самое
     
    #18 0pTik, 29 Sep 2010
    Last edited: 29 Sep 2010
  19. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    Cтавлю кароче новую indy и буду пробывать с ней
     
  20. NemeZz

    NemeZz Elder - Старейшина

    Joined:
    20 Aug 2008
    Messages:
    102
    Likes Received:
    67
    Reputations:
    3
    а если попробовать перед добавлением тела его URLEncode принудительно делать?