Pusty znak - przy ladowaniu csv

Pusty znak - przy ladowaniu csv
G1
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 9 lat
  • Postów:10
0

Witam,
problem polega na tym że wyświetla pusty znak /dziwny znak , naprawdę nie wiem jak to nazwać.

Kod wyglada następująco:

Kopiuj
Scanner in = new Scanner(getClass().getResourceAsStream("/imiona.csv"));
		String linia = "";
		
		try{
			while(in.hasNext()){
				linia = in.next();
				zbior.add(linia);
			}
		}catch(Exception e){ }

Jak uruchamiam program to wyświetla dziwny znak ,a dokładnie pusty kwadrat tylko przy pierwszym imieniu. Mały obrazek w załączniku.

Próbowałem skorzystać z trim(),ale on tylko spacje usuwa . Wydaję mi się że rozchodzi się o kodowanie i to jest właśnie taki nagłówek pliku i przez to tak jest.

Szukam cały czas rozwiązania ,jednak do teraz nie mam żadnych konkretów.
Proszę o pomoc.

edytowany 1x, ostatnio: greg_1992
SH
  • Rejestracja:ponad 16 lat
  • Ostatnio:ponad 4 lata
0

Prześlij imiona.csv


C++ to wyjątkowy język - wysokopoziomowy z niskopoziomowymi mechanizmami, którymi można rozwalić w drobny mak te wysokopoziomowe.
G1
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 9 lat
  • Postów:10
0

plik rar w załączniku .Musiałem zapakować bo csv nie można jako załącznik wysłać.

EM
  • Rejestracja:około 18 lat
  • Ostatnio:około 9 lat
1

ten dziwny znacznik na początku "Adam"-a to znacznik BOM (określa kolejność bajtów). Stąd powstaje taki dziwoląg.
Przekoduj sobie pliczek do "UTF-8 bez BOM" i spróbuj go wtedy odczytać. Ja do takich rzeczy używam notepad++. Ale Ty oczywiście możesz to zakodować.
Nie chce się mądrzyć ale bardziej pasuje mi kod:

Kopiuj
 		 
                String strFile = "C:/Imiona.csv";
		BufferedReader br = new BufferedReader(new InputStreamReader(
				new FileInputStream(strFile), "UTF-8"));
		 String linia = "";
		 
		 while((linia=br.readLine())!=null){
			 System.out.println(linia + "  " + linia.length());
		 }

Mam nadzieję, że to Ci pomoże

G1
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 9 lat
  • Postów:10
0

Dzięki bardzo pomogło . Wystarczyło w Notepad++ plik zakodować "UTF-8 bez BOM". Na prostych rzeczach najbardziej można się zgubić .
Z 3-4 lata temu najczęściej przy pisaniu stron WWW ten UTF8 mnie dręczył i teraz powrócił w Javie ;)

Jeszcze raz dzięki. Pozdrawiam!

edytowany 1x, ostatnio: greg_1992

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.