スポンサーリンク

SetConsoleOutputCPでプログラムからコマンドプロンプト上の文字コードを指定

Windowsでコマンドプロンプトでutf8を表示するには、コードページを指定する必要がある。

chcp 65001

VC++から起動した場合chcpできないので、コードから変える必要がある。

#include <cstdio>
#include <windows.h>

int main()
{
    // 以下の二つはUTF-8を指定
    //SetConsoleOutputCP(CP_UTF8);
    //SetConsoleOutputCP(65001);


    UINT now = GetConsoleOutputCP();

    printf(u8"😊😎❤\n");
    printf("こんにちは\n");
    printf("\n");

    SetConsoleOutputCP(65001);

    printf(u8"😊😎❤\n");
    printf("こんにちは\n");
    printf("\n");

    SetConsoleOutputCP(now);

    printf(u8"😊😎❤\n");
    printf("こんにちは\n");
    printf("\n");
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


この記事のトラックバックURL: