Почему когда использую юникод отправляеться кривой POST запрос?
Я отправляю post запрос на свой локальный сервер
int main()
{
TCHAR data[] = L"TEST=DATA1234567";
LPCWSTR Header = L"Content-Type: application/x-www-form-urlencoded; charset=utf-8";
LPCWSTR UserAgent = L"UG";
HINTERNET hInt = InternetOpenW(UserAgent, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
HINTERNET hCon = InternetConnectW(hInt, L"192.168.0.101", INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);
HINTERNET hOpen = HttpOpenRequestW(hCon, L"POST", L"test", L"HTTP/1.1", NULL, NULL, NULL, NULL);
HttpSendRequestW(hOpen, Header, lstrlenW(Header), data, lstrlenW(data));
InternetCloseHandle(hInt);
InternetCloseHandle(hCon);
InternetCloseHandle(hOpen);
}
Записываю post запрос на своём локальном сервер с помощью php скрипта
<?php
$fh = fopen("POST-LOG.txt", "a+");
fwrite($fh, json_encode($_POST)."\n\n");
fclose($fh);
?>
В итоге вывод в файле POST-LOG.txt
{"T":"\u0000D\u0000A\u0000T\u0000"}
Но когда я изменил код функции main с юникода на многобайтовую кодировку
int main()
{
char data[] = "TEST=DATA1234567";
LPCSTR Header = "Content-Type: application/x-www-form-urlencoded; charset=utf-8";
LPCSTR UserAgent = "UG";
HINTERNET hInt = InternetOpenA(UserAgent, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
HINTERNET hCon = InternetConnectA(hInt, "192.168.0.101", INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);
HINTERNET hOpen = HttpOpenRequestA(hCon, "POST", "test", "HTTP/1.1", NULL, NULL, NULL, NULL);
HttpSendRequestA(hOpen, Header, lstrlenA(Header), (LPVOID)data, lstrlenA(data));
InternetCloseHandle(hInt);
InternetCloseHandle(hCon);
InternetCloseHandle(hOpen);
}
Вывод был какой и должен быть т.е.
{"TEST":"DATA1234567"}
Вопрос что я не так делаю используя юникод и как мне правильно отправить post запрос?