SWT Textdatei Lesen und Anzeige in View - Zeichensatzproblem

Status
Nicht offen für weitere Antworten.

bandit

Mitglied
Ich möchte eine Texdatei einlesen und in einer View in RCP anzeigen. Bisher hatte ich das ganze ohne RCP gemacht und keine Probleme. Jetzt allerdings werden statt Zeilenumbrüchen Steuerzeichen (diese Vierecke) angezeigt. Ich habe auch schon mit .getBytes() versucht das ganze umzuwandeln oder auch direkt beim Einlesen einen Zeichensatz mitzugeben allerdings bisher ohne Erfolg. Hat jemand evtl. einen Tipp für mich?

Java:
 private String readFileAsString(String filePath) {
		StringBuffer fileData = new StringBuffer(1000);
		BufferedReader reader;
		try {
//			reader = new BufferedReader(new FileReader(filePath));
			reader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "UTF-8"));
			char[] buf = new char[1024];
			int numRead = 0;
			while ((numRead = reader.read(buf)) != -1) {
				fileData.append(buf, 0, numRead);
			}
			reader.close();
		}
		catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return fileData.toString();
	}

Java:
 strFileContent = readFileAsString("c:/test/" + ss.getFirstElement().toString());
					//String utf = new String(strFileContent.getBytes("ISO-8859-1"));
					_text.setText(strFileContent);
 
Welches ENcoding hat denn die Textdatei? Das musst du dann auch zum einlesen verwenden. Nicht wirklich ein SWT spezifisches Problem...
 
Hm wie kann ich das denn genau herausfinden? Die Dateien wurde einmal in einer Eingabeauforderungsbox von Windows mit der Umleitung der Ausgabe in eine Textdatei erstellt.

Ich dachte es müsste irgendwas mit der View bzw. dem Text Objekt zu tun haben, weil ich bisher unter reinen SWT die Probleme komischerweise nicht hatte und da im Prinzip das gleiche mache nur ohne die View drumherum.
 
Entscheidend ist welches Programm mit welchen Settings die Datei erzeugt hat.
Ein Texteditor kann dir dabei helfen das richtige Encoding zu finden.
 
Es lag gar nicht an dem Zeichensatz sondern das Textobjekt war falsch erzeugt. Ich habe es mit
Java:
_text = new Text(pParent, SWT.BORDER);
statt
Java:
_text = new Text(pParent, SWT.MULTI);
erzeugt.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben