asio::error_code::message() выводит не то, что должно

У меня есть код

#ifdef _WIN32
#define _WIN32_WINNT 0x0A00
#endif

#include <iostream>
#include <string>

#define ASIO_STANDALONE
#include <asio.hpp>
#include <asio\ts\buffer.hpp>
#include <asio\ts\internet.hpp>

int main() {
    asio::error_code ec;

    asio::io_context context;

    asio::ip::tcp::endpoint endpoint(asio::ip::make_address("127.0.0.1", ec), 80);

    asio::ip::tcp::socket socket(context);

    socket.connect(endpoint, ec);

    if (!ec) {
        std::cout << "Connected!" << std::endl;
    }
    else {
        std::cout << "Failed to connect to address:\n" << ec.message() <<std::endl;
    }

    system("pause");
    return 0;
}

, который должен выводить Failed to connect to address: и описание ошибки, но выводит Failed to connect to address: ╧юфъы■ўхэшх эх єёЄрэютыхэю, Є.ъ. ъюэхўэ√щ ъюья№■ЄхЁ юЄтхЁу чряЁюё эр яюфъы■ўхэшх. В чём может быть проблема?

Visual Studio 2019


Ответы (1 шт):

Автор решения: KoVadim

Проблема в том, что Ваша консоль работает в кодировке 866, а строка выводится в cp1251. И там написано "Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение." А вот почему - это уже другой вопрос, скорее всего никто на локалхосте не хочет Вашего подключения (да, очень часто такая программа как скайп захватывает 80 и 443 порт)

→ Ссылка