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

dodawanie plików źródłowych i kodowanie pliku

Ostatnio zmodyfikowano 2019-06-30 17:22
Autor Wiadomość
nanoant20
» 2019-03-30 17:32:05
$ clang++ main.cpp -o program
$ ./program
Zażółć gęślą jaźń
5A 61 C5 BC C3 B3 C5 82 C4 87 20 67 C4 99 C5 9B 6C C4 85 20 6A 61 C5 BA C5 84 00
kod @pekfos'a skompilowany w clang++
FreeBSD Clang/LLVM UTF-8

napisz jaki używasz system, jakiego kompilatora, jakiego procesora tekstu czy edytora
bo na razie jest zgadywanka

jeżeli używasz linuxa/unix w consoli wpisz
$ locale
 lub
$ echo $LANG
  • - napisz wynik (co wyświetli twoja konsola)
  • - sprawdź jakiego kodowania uzywa twój edytor.
P-174285
Bartex321
Temat założony przez niniejszego użytkownika
» 2019-03-30 18:34:26
Windows 10, Code::Blocks, kompilator domyślny (GCC), Windows-1250
 
P-174286
nanoant20
» 2019-03-30 20:25:30
tak jak pisałem musimy mieć spójne kodowanie
w code:blocks wejdź w Setting=>Editor i w zakładce Encoding Settings wybierz UTF-8
otwórz konsole CMD i wpisz
mode con cp select=65001 lub chcp 65001
to powyżej to dla kodowania UTF-8

dla Windows-1250 wpisujemy:
mode con cp select=1250 lub chcp 1250

dla kodowanie ISO-8859-2:
mode con cp select=28592 lub chcp 28592

//EDIT trzeba to sprawdzić ponieważ nie uzywam windowsa 10
i wiadomo nowy projekt, wprowadż w życie kod @pekfos'a i zobacz wynik
P-174287
nanoant20
» 2019-03-31 00:38:53
Mógłby ktoś napisać tutaj kody polskich znaków, albo wrzucić jakiś link? Bo znalazłem już kilka takich spisów i żaden mi nie działa
poniżej link do substytutu, który znalazłem na tym forum
efekt placebo
zaimplementuj sobie tylko funkcję string PL
a w main
C/C++
cout << PL( "ąćęłńóśżźĄĆĘŁŃÓŚŻŹ" ) << endl;

P-174288
pekfos
» 2019-03-31 11:04:26
Po co konwertować napisy ręcznie do 852 jakiegoś kodowania, skoro może to zrobić za nas kompilator..? -fexec-charset=852. Kompilator poradzi sobie z UTF-8, tamten kod nie. Do zmiany strony kodowej jest funkcja SetConsoleCP(). Można wywołać na początku programu by zadbać, by zawsze było 852.
P-174289
nanoant20
» 2019-04-01 09:27:24
very good idea @pekfos
Można wywołać na początku programu by zadbać, by zawsze było 852,
 czy z funkcja SetConsoleCP().

mozna zrobić też tak
C/C++
int main()
{
    //SetConsoleOutputCP(65001); //XLE
    SetConsoleOutputCP( 852 ); //POPRAWIONE
    cout << "ąćęłńóśżźĄĆĘŁŃÓŚŻŹ" << endl;
}
lub np. tak
C/C++
void SetCP1250()
{
    SetConsoleCP( 1250 );
    SetConsoleOutputCP( 1250 );
    setlocale( LC_ALL, "1250" );
}
int main()
{
    SetCP1250();
    cout << "ąćęłńóśżźĄĆĘŁŃÓŚŻŹ" << endl;
}
i też powinno szpilać

//edit należy doać w opcjach compilatora -fexec-charset=cp852
P-174296
Bartex321
Temat założony przez niniejszego użytkownika
» 2019-04-01 21:17:41
Zmieniłem w ustawieniach C::B na UTF-8 (w cmd też), później zkompilowałem kod Pekfosa i tutaj wyniki

Za┐ˇ│Š gŕťl╣ jač˝
5A 61 BF F3 B3 E6 20 67 EA 9C 6C B9 20 6A 61 9F F1 00
EDIT:
nonoant20 sprawdziłem funkcję PL do której wysłałeś link, oraz funkcje z twojego ostatniego postu - działa funkcja z linku, oraz drugi sposób, jednak tylko przy zwykłym pliku, gdy wrzuciłem to do mojego projektu w sfml znów krzaczki :/
P-174297
pekfos
» 2019-04-01 21:24:12
Plik źródłowy masz zakodowany w Windows-1250. Ustawienie w C::B zapewne nie obejmuje istniejących plików z kodem.
P-174298
1 « 2 » 3 4
Poprzednia strona Strona 2 z 4 Następna strona