Witam. W swoim programie napisanym w allegro, wyświetlam w czcionce
Times New Roman jakiś tam tekst. Poprawnie wyświetlają się polskie znaki (dla przyszłych czytających ten temat, dodam że zrobione zostało to tak jak opisane jest w tym temacie :
[Allegro] Problem z polskimi znakami przy zmienionej czcionce). Więc jak dam po prostu :
textprintf_ex( bufor, font, 50, 50, makecol( 0, 100, 243 ), - 1, "Grzegżółką" );
to wszystko ładnie widać. Ale gdy wczytuję tekst, to wczytuję go za pomocą :
int znak;
if( keypressed() )
{
int scancode;
znak = ureadkey( & scancode );
clear_keybuf();
}
Gdy potem wyświetlam :
textprintf_ex( bufor, font, 50, 50, makecol( 0, 100, 243 ), - 1, "Znak : %c, wartość : %d",( char ) znak, znak );
to dobrze widać co się wczytuje, dopóki nie wczytuję polskich znaków. Gdy wczytuję polskie znaki, to widzę albo "^" albo "[", "{" i temu podobne. Sęk w tym, że dana litera ma dobrą wartość, odwołując się do informacji z tej strony :
Ogonki w Unikodzie. Dla przykładu jak wcisnę "ś", to widzę wartość : 347, czyli prawidłową. Mimo to, zamiast literki "ś", wyświetla się znak "[". Próbowałem już to obejść przez różne rzutowania, ale nie potrafię zamienić tej prawidłowej wartości w formacie unicode na polski znak (a zastosowana czcionka oczywiście obsługuje polskie znaki). Dodam, że na początku korzystałem z :
readkey, ale ze względu, że
unicode ma polskie znaki, przeszedłem na
ureadkey. Wczoraj długo to męczyłem, szukałem różnych informacji, ale nie znalazłem nic co by mi pomogło. Dla ewentualnych przyszłych czytających ten temat, dam jeden link, w którym autor ma podobny problem, i podano mu rozwiązanie które pomogło, może ktoś kto będzie czytał ten temat też znajdzie w tym pomoc. Link :
http://www.allegro.cc/forums/thread/335857, tamto rozwiązanie :
I used was adding set_uformat(U_ASCII); to the program before allegro_init();. |
Jednak u mnie to nie pomogło. Czuję, że rozwiązanie może być banalne, a ja robię po prostu jakiś głupi błąd, a potem będę siebie przeklinał, że na to nie wpadłem. Jednak na chwilę obecną skończyły mi się pomysły. Any idea ?