• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Ustawienie kodowania UTF-8 podczas odczytu z pliku w aplikacji .jar

Object Storage Arubacloud
0 głosów
1,463 wizyt
pytanie zadane 19 lutego 2017 w Java przez plkpiotr Stary wyjadacz (12,420 p.)
edycja 19 lutego 2017 przez plkpiotr

Wyeksportowałem w środowisku Eclipse Neon 2 aplikację okienkową do pliku .jar. Podczas uruchamiania projektu w IDE poprzez [CTRL+F11] aplikacja działa poprawnie, użytkownik po kliknięciu na odpowiedni przycisk wybiera plik do odczytu dzięki JFileChooser, po czym wyświetlane jest okno dialogowe, z jakiej lokalizacji plik został otwarty i następuje wykonanie pozostałych instrukcji.

Natomiast plik .jar owszem wyświetla okienko z wyborem pliku (wybieram ten sam), jednak okno dialogowe o wybranej lokalizacji nie zostaje wyświetlone i dalsze instrukcje (udostępniające inne przyciski) nie są wywoływane, tak jakby żaden plik nie został wczytany.

Proszę o pomoc we wskazaniu gdy popełniam błąd:

public void actionPerformed(ActionEvent evt) {
	JButton source = (JButton) evt.getSource();
	JFileChooser chooser = new JFileChooser(Paths.get("").toAbsolutePath().toString());
	File file = chooser.getSelectedFile();
	FileNameExtensionFilter filter = new FileNameExtensionFilter("Plik tesktowy (*.txt)", "txt");
	chooser.setFileFilter(filter);
	if (source == btnImport) {
		if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
			file = chooser.getSelectedFile();
			try {
				Scanner scanner = new Scanner(file);
				// (...) - odczytywanie z pliku tekstowego - wykonywane również w pliku .jar
			} catch (FileNotFoundException e) {
				e.printStackTrace();
			}
			JOptionPane.showMessageDialog(null, "Otwarto plik: " + file.getAbsolutePath()); // nie wyświetla się w pliku .jar
			// (...) - czynności mające się wykonać po otwarciu pliku tzn. odblokowanie przycisków
		}
	}
    // (...) - dalsze operacje actionPerformed()
}

Okazuje się, że kod jest poprawny. Kiedy odczytuję plik tekstowy z pliku uruchamianego w Eclipsie program odczytuje polskie znaki, natomiast odczytywanie pliku tekstowego z pliku .jar przebiega pomyślnie tylko gdy nie ma w nim polskich znaków, w przeciwnym znaku powstaje coś takiego...

Wobec tego powstaje pytanie, w jaki sposób ustawić odczyt z pliku w kodowaniu UTF-8 jako domyślny?

1 odpowiedź

+1 głos
odpowiedź 19 lutego 2017 przez Mateusz51 Nałogowiec (28,180 p.)
wybrane 19 lutego 2017 przez plkpiotr
 
Najlepsza
Rozwiązaniem twojego problemu może być podanie jawnie kodowania w konstruktorze klasy Scanner:

http://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html
komentarz 19 lutego 2017 przez plkpiotr Stary wyjadacz (12,420 p.)

Raz jeszcze bardzo dziękuję za pomoc ;)

Poprawa w konstruktorze klasy Scanner pomogła :)

Scanner scanner = new Scanner(file,"UTF-8");

Podobne pytania

0 głosów
2 odpowiedzi 510 wizyt
pytanie zadane 11 stycznia 2018 w C i C++ przez migrad Nowicjusz (170 p.)
0 głosów
1 odpowiedź 1,176 wizyt
0 głosów
1 odpowiedź 355 wizyt
pytanie zadane 18 lipca 2017 w PHP przez delarudii Nowicjusz (140 p.)

92,570 zapytań

141,422 odpowiedzi

319,644 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...