Pobieranie tekstu z pliku

0

Mam niedużą formę, na niej tylko jTextFieldy do których jest pobierany tekst z pliku. Plik zapisany w UTF8 i takie kodowanie ustawione w programie. Na moich komputerach (win7 i winXP) wszystko działa bez problemu, ale już na innym kompie (winXP) zamiast polskich znaków są kwadraty. Wina programu czy systemu na drugim kompie?

0

Raczej wina systemu... hardkodnij literkę "ą" i ją wyświetl, to zobaczysz.

1

W javie tylko UTF-16 daje gwarancję zawsze poprawnego odczytu pliku tekstowego ponieważ zawartość pliku tekstowego odpowiada bajt do bajta zawartości takiego pliku w pamięci. Plik w UTF-8 trzeba zawsze parsować, co wiąże się z obsługą błędów.
Do tego mapowanie poszczególnych kodów na konkretne znaki zależy od bieżącej lokalizacji. Na przykład francuski znak akcentowany jest w lokalizacji francuskiej prawidłowym czarnym znakiem i może być elementem słowa, ale w lokalizacji polskiej jest po prostu jakimś kodem, który nie może być rozpoznawany jako element słowa. I tak samo jest z polskimi znakami w lokalizacji obcej.
Druga sprawa, to program w javie (a ściślej konkretna JVM) może nie być w WinXP rozpoznawana jako obsługujący/-a Unicode, więc litery mogą być dekodowane na konkretne znaki zgodnie z tablicami w ustawieniu "International Settings/Advanced" w "control panel". Jeżeli opcje te się różnią w różnych systemach, to muszą wyjść nonsensy w wyświetlaniu na jednym z nich.

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