Pusty znak - przy ladowaniu csv

0

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

Kod wyglada następująco:

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.

0

Prześlij imiona.csv

0

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

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:

 		 
                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

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!

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