Merkwürdiges StringBuilder verhalten (Char Encoding)

Thallius

Top Contributor
Hi,

ich habe eine UTF-8 Datei (mehrfach geprüft ist wirklich eine) die ich in nur in einem Panel ausgeben will.
Dazu habe ich einfach den Stringbuilder genommen:

Java:
		File historyFile=new File("./resources/history");
		if(!historyFile.exists())
		{
			System.out.println("Cant find history file");
			return;
		}
	    
		StringBuilder fileContents = new StringBuilder((int)historyFile.length());
	        Scanner scanner;
		try 
		{
			scanner = new Scanner(historyFile);
		} 
		catch (FileNotFoundException e) 
		{
			return;
		}
	        String lineSeparator = System.getProperty("line.separator");

	        try
	    {
	        while(scanner.hasNextLine()) 
	        {        
	            fileContents.append(scanner.nextLine() + lineSeparator);
	        }
	        this.history=fileContents.toString();
	    } 
	    finally 
	    {
	        scanner.close();
	    }

Nun passiert folgendes:

Wenn ich die App unter OSX oder Windows aus Eclipse heraus starte sind die Umlaute im Panel korrekt.
Wenn ich die History Datei unter OSX oder Windows mit einen Editor (Texteditor, Notepad, Wordpad etc) öffne, sind die Umlaute korrekt.
Wenn ich die App mit java -jar Name.app unter OSX oder Windows starte sind die Umlaute im Panel aber kaputt.

Wer kann mir helfen?

Gruß

Claus
 

Thallius

Top Contributor
Jupp das habe ich auch schon kontrolliert und bei der Run-Configuration auch. Wie gesagt, aus Eclipse heraus klappt es ja auch. Es scheint mehr als würde die App NICHT von UTF-8 ausgehen wenn sie über die .jar gestartete wird. Eventuell muss man da auch noch irgendwas konfigurieren?

Gruß

Claus
 

knilch

Bekanntes Mitglied
Hi,
Kannst du mal versuchen, ob du mit dieser Variante auch das selbe Problem hast:
Java:
	public static String readFile(String filePath) {
		File fileDir = new File(filePath);
		BufferedReader in = null;
		StringBuilder sb = new StringBuilder();
		
		if(!new File(filePath).exists()) {
            System.out.println("Cant find history file");
            return null;		}
		
		try {
			in = new BufferedReader(new InputStreamReader(new FileInputStream(fileDir), "UTF8"));
			String newLine = System.getProperty("line.separator");
			String str;
			while ((str = in.readLine()) != null) {
				sb.append(str);
				sb.append(newLine);
			}
		} 
		catch (UnsupportedEncodingException e)  {
			System.out.println(e.getMessage());
		} 
		catch (IOException e) {
			System.out.println(e.getMessage());
		}
		catch (Exception e)	{
			System.out.println(e.getMessage());
		}
		
		finally {
			if(in != null) {
				try {
					in.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		
		return sb.toString();
	}
@Tausendsassa :Wenn wir schon beim Thema StringBuilder sind was ist das denn??
Ist unschön, solche Fragen in einem Thread zu stellen, der zwar etwas damit zu tun hat, aber nicht in diesen Context gehört. Öffne doch einen neuen Thread und stelle deine Frage dort. Sonst wird das nur ein Chaos...
 

Thallius

Top Contributor
Hi Knilch,

mit Deinem Code funktioniert es. Bleibt trotzdem die Frage warum. Dürfte dann wohl der Scanner sein, der das UTF-8 nicht richtig umsetzt. Kann man dem auch sagen welches Encoding er nehmen soll?

Gruß

Claus
 

knilch

Bekanntes Mitglied
mit Deinem Code funktioniert es.
Das ist schon mal gut. Ich benutzte die Scanner- Klasse sehr selten und kann dir nicht sagen, ob es daran liegt. Du kannst aber eine Scanner- Instanz so aufrufen:
Java:
public Scanner(InputStream source, String charsetName)
vielleicht hilft dir das...
Siehe doc der Java-API
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
Thallius Merkwürdiges Verhalten von Swingworker.cancel() Allgemeine Java-Themen 2
T Merkwürdiges Thread-Verhalten Allgemeine Java-Themen 6
Tommy Nightmare Merkwürdiges Verhalten bei der Datenzuweisung Allgemeine Java-Themen 4
Thallius Swing Merkwürdiges Verhalten beim Panel Tausch Allgemeine Java-Themen 3
V Merkwürdiges For-Loop Problem Allgemeine Java-Themen 7
P Applet-Zugriffsrechte: merkwürdiges Verhalten Allgemeine Java-Themen 4
R Merkwürdiges Verhalten der equals Method Allgemeine Java-Themen 4
M merkwürdiges Verhalten von JUnit4 Allgemeine Java-Themen 2
A Streams: merkwürdiges Verhalten Allgemeine Java-Themen 7
A Streams - merkwürdiges Verhalten Allgemeine Java-Themen 2
Zrebna Möglichkeit regelmäßige indentation mittels/innerhalb Stringbuilder Allgemeine Java-Themen 14
V Stringbuilder zickt rum? -> Eclipse Allgemeine Java-Themen 12
B StringBuilder von File einlesen Allgemeine Java-Themen 8
W StringBuilder effektiv auf OutputStream schreiben Allgemeine Java-Themen 3
A Problem mit StringBuilder delete - find den Fehler nicht Allgemeine Java-Themen 9
T String vs StringBuilder vs StringBuffer Allgemeine Java-Themen 8
G Optimierung StringBuilder Allgemeine Java-Themen 9
Escorter StringBuilder automatisch? Allgemeine Java-Themen 7
P StringBuffer, StringBuilder und StringWriter Allgemeine Java-Themen 4
D StringBuilder kaputt? Allgemeine Java-Themen 2
Y StringBuilder vs. Stringverkettung Allgemeine Java-Themen 61
G wieso wird der String des StringBuilder immer länger? Allgemeine Java-Themen 2
G StringBuilder Allgemeine Java-Themen 4
javamax2000 Sehr sonderbares Verhalten Allgemeine Java-Themen 6
kodela Unterschiedliches Verhalten von BufferedReader Allgemeine Java-Themen 3
J Unvorhersehbares Verhalten - benutze ich die falsche Bedingungsprüfung oder brauche ich Threads? Allgemeine Java-Themen 12
N Best Practice Allgemeines Verhalten für ein Interface implementieren? Allgemeine Java-Themen 7
F JTable Pfeiltasten-Verhalten Allgemeine Java-Themen 1
W LocalDateTime Verhalten unerklärlich Allgemeine Java-Themen 1
C Unterschiedliches Verhalten Editor und deployte Application Allgemeine Java-Themen 3
S Threads ThreadPoolExecutor eigenartiges verhalten Allgemeine Java-Themen 5
A Java Verhalten bei parallelem Aufruf derselben Methode?? Allgemeine Java-Themen 2
M Threads Viele Aufrufe aus Thread, komisches Verhalten Allgemeine Java-Themen 8
S getChildAt() Verhalten Allgemeine Java-Themen 4
S Frage zu Threads (Sichtbarkeit und Verhalten) Allgemeine Java-Themen 11
1 Collections Generics, internes Verhalten Allgemeine Java-Themen 16
S Collections Unverständliches Verhalten... Allgemeine Java-Themen 4
M Nach Programmdurchlauf werden Zeichen falsch dargestellt + Anderes Verhalten unter Windows Allgemeine Java-Themen 6
C Komisches Verhalten zwischen Set und List bei contains Allgemeine Java-Themen 6
S (Doppel)Klick-Verhalten vom Desktop unter Java imitieren. Allgemeine Java-Themen 5
A Seltsames Verhalten von JUnit-Tests im Zusammenspiel mit Ant Allgemeine Java-Themen 6
S Verhalten von System.getenv() in Ubuntu / Linux Allgemeine Java-Themen 12
hdi Verhalten bei nicht behandelten Exceptions Allgemeine Java-Themen 2
J Rätselhaftes Verhalten von Collections Allgemeine Java-Themen 5
M Unerklärliches Verhalten bei Variableninitialisierung Allgemeine Java-Themen 11
S Verhalten der Klasse TreeSet... Allgemeine Java-Themen 4
S Jar und Exe verhalten sich unterschiedlich unter Vista Allgemeine Java-Themen 8
M Seltsames Verhalten eines StringReaders Allgemeine Java-Themen 2
spacegaier HeapSpace der VM ändern -> Verhalten von JARs und EXEs Allgemeine Java-Themen 10
M JList seltsames verhalten. Allgemeine Java-Themen 5
K Seltsames Verhalten von byte[] und Strings Allgemeine Java-Themen 6
S Seltsames Verhalten von split() Allgemeine Java-Themen 3
K Überschreiben von 'static'-Methoden hat anderes Verhalten? Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben