Русский текст вконтакте

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Fiftin, 23 Jul 2011.

  1. Fiftin

    Fiftin New Member

    Joined:
    21 Jul 2011
    Messages:
    40
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте ачат!
    начинающий программист пишу прогу для постинга по обсуждениям вконтакте. столкнулся с проблемой:
    Когда отслеживаю сниффером запросы постинга текст выглядит вот так 'Тест текст'
    пытаюсь симитировать запрос в программе
    post.Add('act=post_comment');
    post.Add('al=1');
    post.Add('comment=Тест текст');
    post.Add('hash='+hash);
    post.Add('last=100');
    post.Add('topic=-17711662_25418309');
    запрос отправляется, но вместо 'Тест текст' в обсуждениях вконаткте появляется такая билиберда ?4??4??4??4??4??4??1? ?4??4??5??1?
    А английский текст пишет правлиьно.
    Прошу помощи скажите что не так делаю) спасибо!
     
  2. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    перед отправкой переводи текст в UTF-8 кодировку...
     
  3. Fiftin

    Fiftin New Member

    Joined:
    21 Jul 2011
    Messages:
    40
    Likes Received:
    0
    Reputations:
    0
    а как перевести в UTF8 ? я пробовал strtoUTF8 не работало..
     
  4. Osstudio

    Osstudio Banned

    Joined:
    17 Apr 2011
    Messages:
    638
    Likes Received:
    160
    Reputations:
    81
    Смотря, на чём кодиш)
     
  5. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    UTF8Encode
    Версия Indy?
     
  6. Fiftin

    Fiftin New Member

    Joined:
    21 Jul 2011
    Messages:
    40
    Likes Received:
    0
    Reputations:
    0
    пишу на делфи. версию инди точно незнаю 9 помоему... как посмотреть её??
     
  7. Fiftin

    Fiftin New Member

    Joined:
    21 Jul 2011
    Messages:
    40
    Likes Received:
    0
    Reputations:
    0
    xophet
    Cпасибо. получилось)
     
  8. Fiftin

    Fiftin New Member

    Joined:
    21 Jul 2011
    Messages:
    40
    Likes Received:
    0
    Reputations:
    0
    Всем спасибо за помощь!!!)
     
  9. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    Если 9, то обнови лучше до 10, проблем меньше будет
     
  10. chexec

    chexec Member

    Joined:
    19 Nov 2010
    Messages:
    67
    Likes Received:
    11
    Reputations:
    3
    программист детекдет
     
  11. enigma

    enigma Member

    Joined:
    10 Jul 2011
    Messages:
    80
    Likes Received:
    15
    Reputations:
    7
    Может пригодится эта универсальная функция кодирования и декодирования в разные кодировки.
    Code:
    #include <string>
    #include <Windows.h>
    
    
    	   LPSTR code(LPCSTR src, UINT srcCode, UINT dstCode)
    {
    int w_size = MultiByteToWideChar(srcCode, 0, src, -1, NULL, 0);
    LPWSTR wbuffer = (LPWSTR)malloc(w_size*sizeof(WCHAR));
    MultiByteToWideChar(srcCode, 0, src, -1, wbuffer, w_size);
    int size = WideCharToMultiByte(dstCode, 0, wbuffer, -1, NULL, 0, NULL, NULL);
    LPSTR buffer = (LPSTR)malloc(size);
    WideCharToMultiByte(dstCode, 0, wbuffer, -1, buffer, size, NULL, NULL);
    free(wbuffer);
    return buffer;
    }
    // ну и вызов, в данном случае нам надо UTF-8
    int main( void )
    {
    	std::string szData = "ывыввапвапааафывфыв";
    	szData = code(szData.c_str(), 1251, CP_UTF8);
    	
    	MessageBox(0,szData.c_str(),"UTF-8",MB_OK|MB_ICONINFORMATION);
    }
     
    #11 enigma, 24 Jul 2011
    Last edited: 24 Jul 2011