Dodanie innego kodowania znaków w code blocks

0

Witam. Mam proste pytanie. Czy jest możliwość dodania konkretnego kodowania znaków w codeblocks? Konkretnie chodzi mi o dodanie kodowania 852, żeby był taki sam jak w CMD microsoftu, co mam nadzieję pozwoli wyświetlać bez jakichś obejść, modyfikowania kodu polskie znaki.

0

Settings->Editor->Encoding settings
... i tam ustaw 'UTF-8'.

co mam nadzieję pozwoli wyświetlać bez jakichś obejść, modyfikowania kodu polskie znaki.
... i ustawiasz polską stronę kodową

setlocale( LC_ALL, "" ); 

Problem z kodowaniem znaków w cmd jest taki, że cmd używa innego kodowania niż Okienka
i trzeba gimnastyki, aby uzyskać czego ci trzeba.

1

Zapisz pliki źródłowe w utf-8 z BOM-em i dodaj opcję kompilatora -fexec-charset=cp852.

0

@YooSy
Ustawienie kodowania na UTF-8, a następnie wklepanie *setlocale( LC_ALL, "" ); * na początek maina(chyba tam to trzeba wkleić, chociaż nie wiem bo nie napisałeś :P) nie działa, dalej w CMD przy wyświetlaniu polskich znaków wyświetla krzaki.
Co do dalszej części twojej wypowiedzi - sprawdziłem i CMD używa kodowania CP852, a w Codeblock nie da się przy pomocy predefiniowanych opcji zmienić na to kodowanie. Jak zmienie na UTF-8 kodowanie w Codeblocks, to dalej jest inne kodowanie niż w CMD microsoftu, więc w sumie nie dziwie się, że mi to nie działa(chyba, że coś źle rozumiem, poprawcie mnie).

@_0x666_
Jak zapisać pliki źródłowe w utf-8 z BOM-em(w ogóle co to jest ten BOM)? Czy chodzi Ci o jakieś inne zapisanie pliku źródłowego .cpp, czy jak? No i gdzie dodać tą opcję do kompilatora?

Edit1: Ok, zrobiłem tak, że działa. Nie wiem, czy początkowe zmienienie kodowania w *Settings->Editor->Encoding settings * miało na to wpływ ale działa. Zaczęło działać dopiero gdy dodałem do projektu właśnie to: -fexec-charset=cp852. Dodałem to tak: Project->Build Options->Compiler settings, w zakładce Compiler Flags prawym->New Flag-> w okienku "Compiler flags: " dodałem to co @_0x666_ doradził. Jeszcze po wszystkim trzeba kliknąć ctrl+F11(rebuild). Jednak nie wiem, czy z każdym nowym projektem nie będę musiał robić tego samego. Dodam jeszcze, że dodanie linijki kodu "setlocale( LC_ALL, "" ); ", raczej nie jest konieczne. Mi działa bez tego.

1

Opcję kompilatora dodaj w Project -> Project build options -> Compiler Settings -> Other compiler options. Wszystkie pliki .h i .cpp zapisz w jakimś lepszym edytorze w kodowaniu utf-8 (z BOM). Być może po tym, co zaproponował @YooSy, C::B będzie zapisywał wszystkie nowe pliki w utf-8, ale te, które już masz, mogą być w starym kodowaniu 1250.

setlocale( LC_ALL, "" ); na początek maina (...) nie działa

Oczywiście, że to nie działa, bo to ma się nijak do problemu (nawet nie wiem, czy to wywołanie w Windowsie ma takie samo znaczenie co w Linuksie).

Jednak nie wiem, czy z każdym nowym projektem nie będę musiał robić tego samego.

C::B ma Global compiler settings, choć nie wydaje się dobrym pomysłem ustawianie OEM-owskiego kodowania na sztywno, chyba że będziesz klepał tylko konsolowe aplikacje.

0
0x666 napisał(a):

Oczywiście, że to nie działa, bo to ma się nijak do problemu (nawet nie wiem, czy to wywołanie w Windowsie ma takie samo znaczenie co w Linuksie).

Jak szukałem rozwiązania problemu w google, to w wielu wątkach przytaczano m.in. to 'rozwiązanie', no ale co poradzić. W każdym razie, dziękuje za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1