Mam taki problem, chciałbym wyświetlać znaki specjalne w javie, np. symbol Pi itd. Wpisując w Eclipse kod litery PI "\u03A0" po kompilacji wyskakuje znak zapytania, ogólnie niektóre znaki specjalne się wyświetlają bez problemu, natomiast przy niektórych (np. PI) wyskakuje znak zapytania.
Może trzeba zmienić kodowanie (strzelam)
Ale jak kompilujesz i uruchamiasz w Eclipse czy poza ? Spróbuj poza ja tak miałem z polskimi znakami
Konsola czy programem z GUI? Jeśli GUI, to jaka czcionka? U mnie (windows xp) w programach z GUI dla czcionki domyślnej (Dialog) i dla monospaced wyświetla się małe i duże pi.
Odpalałem w konsoli i dalej ten sam efekt, czyli wyświetlający się znak zapytania. W eclipsie tez to samo. Ustawioną mam czcionkę Consolas. W Dr. Java przestawiłem czcionkę na Consolas i PI i inne znaki się wyswietlaja. A w eclipsie dalej nic.
A nie masz ty po prostu czcionki ustawionej ktora nie ma takich glyphow ('literek')? Kodowanie nie ma tu znaczenia, przeciez podaje escapowane kody.
Wersja na siłe - możesz skopiować to :P
System.out.println("π");
System.out.println("\u03c0"); // to działa przy kodowaniu znaków utf8 na konsoli
Madaoo dzięki. Zmieniłem kodowanie na UTF-8 i wszystko śmiga.
... Ale teraz jest problem z polskimi znakami. Nie ma jakiegoś złotego środka, zostawi bez zmian polskie znaki i będzie wyświetlał znaki specjalne ? Przy kodowaniu Cp1250 mam polskie znaki , ale nie mam znaków specjalnych , przy kodowaniu UTF-8 są znaki specjalne, ale jest problem ze znakami polskimi.
Hmmm kodowanie iso-8859-2, powinno załatwić sprawę, jak nie to locale ustasw tak:
// ustawienie lokalnych systmemowych
Locale plLocale = new Locale("pl", "PL");
Locale.setDefault(plLocale);
Sprawdź, jak nie zadziała to jest jeszcze kilka sposobów ze znakami specjalnymi i polskimi znakami ;)
Użyj kodowania Unicode - może być utf-32, utf-16 (BE/LE), utf-8 - bez znaczenia ponieważ w pamięci Javy i tak jest używany UTF-16LE (little endian) oraz na wyjściu aktywnej czcionki "Deja Vu", która istnieje na pewno w Windows 7 (nie wiem jak z licencjami). Ona zawiera prawie 6k znaków, a więc mapuje całkiem pokaźny kawał unikodu i jednocześnie zawiera polskie znaki. Na pewno można więc używać zarówno symbolu pi, trupiej czaszki i inwalidy oraz polskich liter. ;-)
Inne czcionki zawierają zazwyczaj, albo symbole bez znaków narodowych, albo znaki narodowe bez symboli. Do tego nakłada się jeszcze mapowanie 8-bitowe, które może nie pozwalać na połączenie pi i znaków narodowych w jednym subsecie (chyba żadne jakie znam nie pozwala).
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.