Cześć. Ostatnio przeniosłem się na CodeBlocks i po wyłączeniu środowiska CB zmienia mi polskie znaki na krzaczki.
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
setlocale( LC_ALL, "" );
cout << "¹æê³ñ󜿟¥ÆÊ£ÑÓŒ¯";
cout << "¹æê³ñ󜿟¥ÆÊ£ÑÓŒ¯" ;
cout << "Dzia³a i nie wiadóñ";
cout << "³æ¹óê¹¹óêó¹";
return 0;
}
Wygląda to tak.
Po odpaleniu kodu wyświetla sie komunikat że kompilator zmienił kodowanie na UTF-8 aby zabezpieczyć dane przed ich utratą.
Jak widać powyżej używam setlocale( LC_ALL, "" ); do konwersji na polskie znaki. Używam kodowania Windows-1250, mam winde 8.1. Próbowałem zmienić na UTF-8 i as default encoding, ale wtedy w konsoli w ogóle nie wyświetlają się pl znaki. Próbowałem przeróżnych kodów źródłowych, ale żadne nie działają.
W VS używałem opcji poniżej, która przy używaniu wcout i L dawała świetne rezultaty, lecz wcout nie współpracuje ze string, więc na dłuższą metę i tak nie znalazłem rozwiązania.
std::wcout.imbue(std::locale("Polish_poland.852"));
Jeśli ktoś zna rozwiązanie problemu proszę o pomoc.