charset eines jars

JavaN3rd

Mitglied
Hey zusammen

Ich habe schon länger mal einen VocabularyTrainer geschrieben, der mich automatisch, in einem textfile abgespeicherte Datensätze (Wort und Übersetzung usw.), zur Übersetzung abfrägt. Aber das ist eigentlich gar nicht das entscheidende. sondern:

Ich habe von diesem Programm mittels Netbeans ein .jar generiert und mit Jestart eine .exe die das Programm .jar startet.
Nur verwendet jetzt das .jar bzw. durch die .exe gestartete Programm (ist ja eigentlich das gleiche ^^) ein anderes charset, denn die ä's, ö's, é's usw. werden nicht erkannt.
Starte ich das Programm aber aus Netbeans heraus funktioniert es ohne Problem.

Kann mir da jemand weiterhelfen?

Vielen Dank
 
Moin,

Ohne den Code kann man nur im trüben fischen ... 😳
Von welchem Datentyp reden wir hier ???:L
char[] / byte[] / String ???:L

Du könntest aber bspw. jedes Zeichen durch eine ASCII2Ansi-Konvertierung laufen lassen, in der Du die Zeichen ersetzt !
Etwas so (andersrum entsprechend) :
Java:
 /**
  * Wandelt einen Ascii-Wert in einen Ansi-Wert
  * @param ascii Der Ascii-Wert
  * @return Der Ansi-Wert
  */
 public static byte ascii2ansi(byte ascii)
 {
   switch (ascii) {
     case (byte) (132):
       return (byte) (228); // ä
     case (byte) (148):
       return (byte) (246); // ö
     case (byte) (129):
       return (byte) (252); // ü
     case (byte) (142):
       return (byte) (196); // Ä
     case (byte) (153):
       return (byte) (214); // Ö
     case (byte) (154):
       return (byte) (220); // Ü
     case (byte) (225):
       return (byte) (223); // ß
     default:
       return ascii;
   }
 }

Gruß
Klaus
 
Vielen Dank für die Antwort

Ich habe gedacht bei dieser Frage ist der code ziemlich irrelevant, kann ihn aber schon noch posten wenn es nötig ist.
Die Datensätze werden wie gesagt beim Programmstart aus einem Textfile gelesen (mit BufferedInputStream) und daraus wird eine Liste von Data Objekten erzeugt:

Java:
package util;

public class Data {
    
    private String word;
    private String translation;
    private int numberAsked;
    private int numberRight;
    
    public Data(String word, String translation, int numberAsked, int numberRight){
        this.word = word;
        this.translation = translation;
        this.numberAsked = numberAsked;
        this.numberRight = numberRight;
    }
/* ......
 * Methoden, nicht relevant, denke ich.
 */

Die Strings werden dann in einem GUI in einer JTable dargestellt.
In diesem GUI werden sie nun wie schon beschrieben je nach Ausführungsart bzw. ob jar oder aus Netbeans (es führt die java-Datei aus und kein jar soviel ich weiss) die Wörter falsch oder richtig dargestellt.

Es kann ja eigentlich nicht sein, dass die Wörter (vom Datentyp her) falsch abgespeichert sind (bzw. im falschen Format) denn es funktioniert ja aus Netbeans, aus demselben Grund kann es auch nicht am GUI liegen. Oder sehe ich das falsch?

Ich hoffe dies hilft weiter, entschuldigt die Ungenauigkeit am Anfang.
 

Zurück
Oben