WinAPI - 标准输出到文本文件的字符编码

时间:2016-01-29 21:44:04

标签: c winapi encoding stdout

我有更改UTF-8控制台代码页的代码,但是当我想将输出重定向到.txt文件时,它无效。也许是因为文件是ANSI格式?如何以最佳方式解决这个问题?

#include <windows.h> 
#include <stdio.h>

int main(void) 
{ 
    if(!SetConsoleCP(65001))
    {
        printf("\nSetConsoleCP failed with %d\n", GetLastError()); 
    }

    if(!SetConsoleOutputCP(65001))
    {
        printf("\nSetConsoleOutputCP failed with %d\n", GetLastError());
    }

    system("chcp && ping google.com > log.txt");

    return 0;
}

1 个答案:

答案 0 :(得分:0)

最好的方法是使用&#34; cmd / w&#34;启动控制台,并使用utf16控制台编写命令。

System()是C编译器库的一部分,它取决于库内部的功能。 (例如,它是以cmd / w还是cmd开头的?),是&#34; ping&#34;使用&#34; w&#34;写入控制台变体