Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

WinAPI - kodowanie znaków na standardowe wyjście do pliku .txt

Ostatnio zmodyfikowano 2016-01-29 21:22
Autor Wiadomość
PrimeBull
Temat założony przez niniejszego użytkownika
WinAPI - kodowanie znaków na standardowe wyjście do pliku .txt
» 2016-01-29 21:22:55
Witam. Mam oto taki kod, który w zamierzeniu ma ustawiać stronę kodową w konsoli na UTF-8, na stdin i stdout. Program działa, ale przy zapisie standardowego wyjścia do pliku nadal są krzaczki. Domyślam się, że tworzony plik .txt jest w kodowaniu ANSI i wszystko się psuje. Jak optymalnie rozwiązać ten problem?

C/C++
#include <windows.h>
#include <stdio.h>

int main( void )
{
    // Ustawia stronę kodową dla wejścia konsoli - UTF-8 (65001)
    if( !SetConsoleCP( 65001 ) )
    {
        printf( "\nSetConsoleCP failed with %d\n", GetLastError() );
    }
   
    // Ustawia stronę kodową dla wyjścia konsoli - UTF-8 (65001)
    if( !SetConsoleOutputCP( 65001 ) )
    {
        printf( "\nSetConsoleOutputCP failed with %d\n", GetLastError() );
    }
   
   
    system( "chcp && ping wp.pl > log.txt" );
   
    return 0;
}

EDIT:

Zauważyłem, że gdy zmienię polecenie np. z "ping" na "dir" to wtedy wszystko jest ok. Czy w takim razie zależy to od programu ping?
P-144150
« 1 »
  Strona 1 z 1