Koledzy mam mały problem muszę zrobić coś takiego. Wczytuje plik np. Phonebook.dat w którym informacje są przechowywane w postaci tekstu o kodowaniu UTF-8 i wybrać interesujące mnie informacje z niego i zapisać w postać HTMLa. Fragment programu wczytywania w załączonym pliku.
public class czytanieTel {
public static void main(String[] args) {
File plik = new File("C:/Phonebook.dat"); // lokalizacja pliku
BufferedReader buf = null; // definiowanie bufora odczytu
String nazwisko_imie = "";
String telDomowy = "";
String telKomorkowy = "";
String telSluzbowy = "";
boolean koniec;
try {
buf = new BufferedReader(new FileReader(plik));
String[] info = null;
info = buf.readLine().split(" "); // czytanie 1-linija
while (info[0] != "quit") {
// tu przeprowadzam filtracje danych
// mnie interesujšcych
try {
info = buf.readLine().split(" "); // czytanie 1-linija
} catch (NullPointerException e) {
info[0] = "quit";
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
I tu powstaje problem buf.readLine().split(" ") czyta mi wszystko jako ASCII i tu nie byłoby żadnego problemu bo zmieniłbym kodowanie w raporcie HTML na UTF-8 ale niestety przy wczytywaniu są momenty kiedy buf.readLine().split(" ") źle mi odczyta tekst UTF-8 i źle zamieni go na ASCII. Czym to może być spowodowane i jak to mogę obejść? Dziwne jest to że źle odczytana jest tylko część. Będę wdzięczny za wszystkie sugestie i każdą pomoc jestem laikiem jeżeli chodzi o jave.
Dodam jeszcze przykład:
Tak jest zapisana informacja w pliku-> N;CHARSET=UTF-8:Łukasiak;Jasiek
Tak wygląda po konwertowaniu na ASCII w notatniku-> N;CHARSET=UTF-8:Ĺukasiak;Jasiek
A tak wygląda po odczytaniu przez buf.readLine().split(" ") -> N;CHARSET=UTF-8:Ĺ?ukasiak;Jasiek