Mam csv file
, który zawiera słowa w języku angielskim, a następnie ich tłumaczenie hindi. Próbuję odczytać plik csv i za jego pomocą wykonać dalsze przetwarzanie. Plik CSV wygląda tak:Odczytywanie znaków Unicode z pliku CSV
English,,Hindi,,,
,,,,,
Cat,,बिल्ली,,,
Rat,,चूहा,,,
abandon,,छोड़ देना,त्याग देना,लापरवाही की स्वतन्त्रता,जाने देना
Próbuję odczytać linię pliku csv po linii i wyświetlić, co zostało napisane. Fragment kodu (Java
) przedstawia się następująco:
//Step 2. Read csv file and get the string.
FileInputStream fis = null;
BufferedReader br = null;
try {
fis = new FileInputStream(new File(csvFile));
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
boolean startSeen = true;
if(fis != null) {
try {
br = new BufferedReader(new InputStreamReader(fis, "UTF-8"));
} catch (UnsupportedEncodingException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
System.out.print("Unsupported encoding");
}
String line = null;
if(br != null) {
try {
while((line = br.readLine()) != null) {
if(line.contains("English") == true) {
startSeen = true;
}
if((startSeen == true) && (line != null)) {
StringBuffer sbuf = new StringBuffer();
//Step 3. Parse the line.
sbuf.append(line);
System.out.println(sbuf.toString());
}
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
Jednak następujące wyjścia jest to, co mam:
English,,Hindi,,,
,,,,,
Cat,,??????,,,
Rat,,????,,,
abandon,,???? ????,????? ????,???????? ?? ???????????,???? ????
My Java nie jest wielki i choć przeszły liczby stanowisk na SO, potrzebuję więcej pomocy w ustaleniu dokładnej przyczyny tego problemu.
Tylko strona Komentarz: Nie musisz zrównać wartości logicznych jak robisz 'if (linia .contains ("English") == true) 'i' (startSeen == true) 'zamiast tego możesz bezpośrednio użyć' if (line.contains ("English")) 'i' (startSeen) ', ponieważ mogą być albo prawda czy fałsz. – Smit
@smit: punkt wzięty. Dzięki! – Sriram