Как отправить файл cookie, содержащий символ Юникода в GET-запросе https, используя плохие сокеты Windows - PullRequest
0 голосов
/ 02 июля 2019

Я создаю приложение win32 и работаю с одним конкретным сайтом.Из предыдущих запросов я извлек несколько файлов cookie и хочу их реализовать.Но проблема в том, что один из этих файлов cookie содержит букву Юникода (латинская строчная буква e с точкой выше; 279 в таблице ASCII).Это единственный файл cookie, кодированный по URL.При декодировании я получаю char \ u0117, а компилятор Visual Studio выдает мне предупреждение, что это символ unicode и обрабатывает его как?пометка*

strcpy(request,"GET / HTTP/1.1\r\nHost: www.15min.lt\r\nCookie: PHPSESSID=652e6dd2ac78de5db5392e53b9a0355a; logged_user={\"id\":\"625936\",\"email\":\"vytautas.leveris@gmail.com\",\"display_name\":\"Vytautas L\u0117veris\",\"full_name\":\"Vytautas L\u0117veris\",\"photo\":\"https:\/\/www.15min.lt\/assets\/images\/user-default-icon.png\",\"photo_small\":\"https:\/\/www.15min.lt\/assets\/images\/user-default-icon.png\",\"photo_normal\":\"https:\/\/www.15min.lt\/assets\/images\/user-default-icon.png\",\"staff\":false,\"bookmarks\":2,\"nb\":1}; remember_me=625936; device_token_625936=84c45e719fedc5949ced93ca0df54152\r\nUser-Agent: WindowsSockets2\r\n\r\n");

Когда я отправляю сообщение через winsock, я использую тип char.

Нужно ли конвертировать все в wchar_t *?Но тогда как насчет отправки wchar_t * на сервер?Или, может быть, я мог бы изменить это представление символов в последовательность символов UTF8?Любая помощь и комментарии приветствуются.

1 Ответ

0 голосов
/ 02 июля 2019

Я бы порекомендовал обрабатывать данные как непрозрачную последовательность байтов, т. Е. Преобразовывать пользовательские данные в байты UTF-8, запускать базу 64 и использовать ее в качестве значения cookie.См. Также: https://stackoverflow.com/a/49205256/696632. Затем выполните обратную операцию на стороне получателя.Вам, вероятно, потребуется unsigned char* для непрозрачных байтовых данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...