2015-06-14 6 views
7

Czytam plik xml, który zawiera niemiecki, francuski, hiszpański, angielski i polski tekst.Wyświetlanie znaków (polskich) prawidłowo

Aby obsłużyć polskich liter (który spowodował najwięcej problemów) Starałem się zrobić to tak:

File file = new File(path); 
InputStream is = new FileInputStream(file); 
Reader reader = new InputStreamReader(is, charset); 

InputSource src = new InputSource(reader); 
src.setEncoding(charset.name()); 

SAXParserFactory factory = SAXParserFactory.newInstance(); 
SAXParser saxParser = factory.newSAXParser(); 

saxParser.parse(src, handler); 

Problem natknąłem było to, że żaden z domyślnych zestawów znaków wyświetlić tekst prawidłowo. Niektóre mają znaki zapytania, niektóre zawierają kombinację innych znaków, np. Ao ..

Aby przełamać go nieco w dół pisałem kolejny fragment do testowania, które charset działa:

public static void main(String[] args){ 
     Charset charset = StandardCharsets.UTF_8; 
     String chars = "śłuna długie"; 
     System.out.println(new String(chars.getBytes(charset), charset)); 
} 

Ponownie przetestowane każdy jeden, ale nic nie działa .. Mam nadzieję, że masz pomysł.

+3

W pierwszym fragmencie kodu nic nie wypisujesz, więc trudno powiedzieć, co się dzieje. Drugi fragment kodu działa, 'śłuna długie' jest poprawnie drukowane na konsoli. Z jakiej konsoli korzystasz? * Gdzie * czy próbujesz wydrukować ten tekst? Czy urządzenie wyjściowe obsługuje znaki, które chcesz wydrukować? –

+0

Trudno jest podać prawidłowy kod analizatora składni, ponieważ jest tak wiele ważnych jego części. Ok, więc problem może być moją konsolą .. nie pomyślałem o tym. To domyślna konsola mojego Intelli IDEA – codewing

+0

zmieniła moje kodowanie projektu i ide do UTF 8 i zadziałało .. dziękuję kolego – codewing

Odpowiedz

0

Moje rozwiązanie: Zmiana kodowania IDE

Użyłem domyślnego kodowania mojego IDE (IntelliJ), który był „windows-1252”, ze względu na fakt, że używam Windows na tym komputerze.

Więc zmieniłem go na UTF-8 i krótki testowy kod zadziałał dobrze dla mnie.

Powiązane problemy