Hallo
Ich habe eine Mobile App für Android geschrieben und Probleme Input aus einem File zu lesen. Buchstaben wie "Ä","Ö","Ü" usw. werden mit einem Fragezeichen-Symbol dargestellt im App dargestellt Ich habe eine Klasse für Inputfiles geschrieben, die in einer normalen Java Applikation normal funktioniert. Hier die Klasse:
Beim normalen Java-Client hatte ich einen normalen FileReader benutzen können und ich musste auch keinen neuen String erstellen. Im XML-Manifest ist utf-8 als encoding eingetragen. Wo kann da das Problem liegen? :bahnhof:
Grüsse
Ich habe eine Mobile App für Android geschrieben und Probleme Input aus einem File zu lesen. Buchstaben wie "Ä","Ö","Ü" usw. werden mit einem Fragezeichen-Symbol dargestellt im App dargestellt Ich habe eine Klasse für Inputfiles geschrieben, die in einer normalen Java Applikation normal funktioniert. Hier die Klasse:
Code:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
public class InputFile{
private String row;
private String filename;
private BufferedReader input;
private File f;
public InputFile(String filename) throws IOException{
this.filename = filename;
f = new File(filename);
if(!existFile(filename)){
createFile(filename);
}
openFile(filename);
}
public void openFile(String filename) throws FileNotFoundException, UnsupportedEncodingException{
//input = new BufferedReader(new FileReader(filename));
input = new BufferedReader(new InputStreamReader(new FileInputStream(filename), "utf8"));
}
public void createFile(String filename) throws IOException{
f.createNewFile();
}
public boolean existFile(String filename){
return f.exists();
}
public String nextLine() throws IOException{
row = null;
if (input.ready()){
try{
this.row = input.readLine();
//this.row.replaceAll("\\\\n", "\\n");
String[] workaround = row.split("\\\\\\\\n");
this.row = workaround[0];
for(int i = 1; i < workaround.length; i++){
this.row += "\n";
this.row += workaround[i];
}
}catch(FileNotFoundException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}else{
throw new IOException();
}
String UTF8Str = new String(row.getBytes(),"UTF-8");
System.out.println(UTF8Str);
return UTF8Str;
}
public void closeFile() throws IOException{
input.close();
}
public String getRow() {
return row;
}
public void setRow(String row) {
this.row = row;
}
public String getFilename() {
return filename;
}
public void setFilename(String filename) {
this.filename = filename;
}
public BufferedReader getInput() {
return input;
}
public void setInput(BufferedReader input) {
this.input = input;
}
public File getF() {
return f;
}
public void setF(File f) {
this.f = f;
}
}
Beim normalen Java-Client hatte ich einen normalen FileReader benutzen können und ich musste auch keinen neuen String erstellen. Im XML-Manifest ist utf-8 als encoding eingetragen. Wo kann da das Problem liegen? :bahnhof:
Grüsse