【发布时间】:2021-12-07 13:16:03
【问题描述】:
我正在尝试在我的程序上打印一些 UTF-8 文本。当我执行正常打印功能时它不会显示,但在我使用#include<fcntl.h>、#include <io.h>、setmode(_fileno(stdout), _O_U16TEXT); 并将printf 转换为wprintf 后它确实有效。但是,在我使用了上面提到的那些行之后,它使我所有的正常打印行都不可见,只有 UTF-8 文本可见。我该如何解决这个问题?
这是我的代码:
#include<fcntl.h>
#include <io.h>
#include <stdio.h>
int main (){
setmode(_fileno(stdout), _O_U16TEXT);
wprintf(L"░██████╗████████╗██╗░░░██╗██████╗░███████╗███╗░░██╗████████╗ ██╗░░░██╗░█████╗░████████╗██╗███╗░░██╗░██████╗░\n");printf("\n");
wprintf(L"██╔════╝╚══██╔══╝██║░░░██║██╔══██╗██╔════╝████╗░██║╚══██╔══╝ ██║░░░██║██╔══██╗╚══██╔══╝██║████╗░██║██╔════╝░\n");printf("\n");
wprintf(L"╚█████╗░░░░██║░░░██║░░░██║██║░░██║█████╗░░██╔██╗██║░░░██║░░░ ╚██╗░██╔╝██║░░██║░░░██║░░░██║██╔██╗██║██║░░██╗░\n");printf("\n");
wprintf(L"░╚═══██╗░░░██║░░░██║░░░██║██║░░██║██╔══╝░░██║╚████║░░░██║░░░ ░╚████╔╝░██║░░██║░░░██║░░░██║██║╚████║██║░░╚██╗\n");printf("\n");
wprintf(L"██████╔╝░░░██║░░░╚██████╔╝██████╔╝███████╗██║░╚███║░░░██║░░░ ░░╚██╔╝░░╚█████╔╝░░░██║░░░██║██║░╚███║╚██████╔╝\n");printf("\n");
wprintf(L"╚═╝░░░░╚═════╝░╚═════╝░╚══════╝╚═╝░░╚══╝░░░╚═╝░░░ ░░░╚═╝░░░░╚════╝░░░░╚═╝░░░╚═╝╚═╝░░╚══╝░╚═════╝░\n");printf("\n");
wprintf(L"░██████╗██╗░░░██╗░██████╗████████╗███████╗███╗░░░███╗\n");printf("\n");
wprintf(L"██╔════╝╚██╗░██╔╝██╔════╝╚══██╔══╝██╔════╝████╗░████║\n");printf("\n");
wprintf(L"╚█████╗░░╚████╔╝░╚█████╗░░░░██║░░░█████╗░░██╔████╔██║\n");printf("\n");
wprintf(L"░╚═══██╗░░╚██╔╝░░░╚═══██╗░░░██║░░░██╔══╝░░██║╚██╔╝██║\n");printf("\n");
wprintf(L"██████╔╝░░░██║░░░██████╔╝░░░██║░░░███████╗██║░╚═╝░██║\n");printf("\n");
wprintf(L"╚═════╝░░░░╚═╝░░░╚═════╝░░░░╚═╝░░░╚══════╝╚═╝░░░░░╚═╝\n");printf("\n");
printf("THIS BECOMES INVISIBLE");
printf("how do i make it visible???");
return;
}
谢谢!
【问题讨论】:
标签: c windows algorithm encoding utf-8