Encoding problem

CHAOSFISCH

Bekanntes Mitglied
Folgendes:
Daten werden über ein GUI eingegeben, landen in der Datenbank, werden aus der DB gelesen in XML verpackt und per HTTP Request abgeschickt.

Problem:
Laufende Anwendung in Netbeans => keine Encoding Fehler
Deployte Anwendung => falsches Encoding des generierten XML Inhaltes.

Beispiel:
►►► TRÄNEN UND SPEICHEL
??? TR�NEN UND SPEICHEL

Was wurde bereits versucht:
Die entsprechenden Stellen werden mit UTF8Converter.convert() (siehe unten) versucht in UTF8 zu bringen.
Java:
public class UTF8Converter {

    public static String convert(String input) {
        String output = null;
        try {
            byte[] utf8 = input.getBytes("UTF-8");
            output = new String(utf8, "UTF-8");
        } catch (UnsupportedEncodingException e) {
        }
        return output;
    }
}

=> Kein erfolg.

2. Versuch einen DB Fehler beim Eintragen auszuschließen:
Hab also von beiden HSQLDBs die script files angeschaut und gesehen, dass bei beiden es richtig drinnen steht:
"\u25ba\u25ba\u25ba TR\u00c4NEN UND SPEICHEL"

Kann es hier dennoch irgendwo beim auslesen zu einem Fehler kommen!?

3. Unmittelbar vor dem absenden der Daten wird eine Logfile erzeugt:
Diese zeigen folgendes:
►►► TRÄNEN UND SPEICHEL
??? TRÄNEN UND SPEICHEL

Auffällig: Obwohl die Daten versucht wurden zu "konvertieren", sind sie hier falsch, das Ä ist aber korrekt.

Kann ich sonst noch irgendwo nach dem Fehler suchen?

Gruß
CHAOSFISCH
 

Kevin94

Top Contributor
Wo sollen die Daten hingeschickt werden/welche Art von Programm empfängt die XML daten?

Fragst du damit über ein Socket eine Website ab?
Antortest du auf eine Anfrage an ein Servlet?

Wenn du allgemein im WWW daten verschickst muss im Header entweder die Zeichencodierung angegeben sein oder du musst ASCII verwenden und all nicht ASCII zeichen mit HTML Entities maskieren.
Die deutschen Umlaute bilden bei den meisten Browsern eine Ausnahme, die werden manchmal auch so erkannt (Frag mich nicht warum, ist mir nur mal aufgefallen).
 

CHAOSFISCH

Bekanntes Mitglied
Es handelt sich um einen Google Data Api Request.
Selbstverständlich befindet sich in der XML Datei encoding="utf-8" und im Header charset="utf-8"
 

Landei

Top Contributor
Vielleicht eine dumme Idee, aber wenn du Kontrolle über das Format hast und es nur ein bestimmtes Feld betrifft, nimm doch einfach Base64, bevor du dich ewig damit rumärgerst.
 

CHAOSFISCH

Bekanntes Mitglied
Vielleicht eine dumme Idee, aber wenn du Kontrolle über das Format hast und es nur ein bestimmtes Feld betrifft, nimm doch einfach Base64, bevor du dich ewig damit rumärgerst.

Was verstehst du unter Format? Varchar?
Weil soweit ich das sehe, hilft mir Base64 nicht weiter.
Es ist alles in der DB korrekt drinnen, es kann alles wieder in das GUI richtig ausgelesen werden.
Aber sobald ich die Daten dann in einer Datei abspeichere / XML daraus erstelle sind sie falsch :O
 
Zuletzt bearbeitet:

CHAOSFISCH

Bekanntes Mitglied
Ich hab absolut keinen Spielraum!
Google will ein atom+xml als Contenttype.

Was ich nicht verstehe:

Läuft es in Netbeans funktioniert es
Läuft es dann später als ausgeführte .jar File, dann gibts Probleme.
 

CHAOSFISCH

Bekanntes Mitglied
So, ich habe nun ein paar neue Informationen zu dem Problem:

Die Input Daten werden anscheinend schon beim Input durch das GUI falsch behandelt.
Kann man irgendwie explizit sagen, welches Encoding ein JTextfield etc. haben muss!?
 
C

Camino

Gast
Hmm, Encoding bei Netbeans richtig eingestellt? Ist mir bei Eclipse schon paarmal passiert...
 

CHAOSFISCH

Bekanntes Mitglied
Hmm, Encoding bei Netbeans richtig eingestellt? Ist mir bei Eclipse schon paarmal passiert...

Hab unter Projekteinstellungen UTF-8 gesetzt gehabt.
In Netbeans läuft es problemlos.
In Windows als fertige jar Datei gibts das Problem.
Vermutlich wird das standard char. encoding cpXXXX genommen.

Ich hab nun die bestätigung, dass in Netbeans Charset.defaultCharset = utf8
Unter Windows leider = windows-12xx

Edit:
Genau das ist das Problem jetzt.
Ich kann zwar jetzt den Parameter -Dfile.encoding=UTF8 anhängen, kann ich das aber auch irgendwie fest eincompilieren?
 
Zuletzt bearbeitet:

CHAOSFISCH

Bekanntes Mitglied
versuch mal:
Java:
System.setProperty("file.encoding", "UTF-8");

Wenn es so einfach wäre.
file.encoding kann nicht verändert werden innerhalb einer Anwendung.
file.encoding muss spätestens beim Start der JVM festgelegt sein.
Darum fragte ich auch, ob man das irgendwie (das Argument -Dfile.encoding=UTF8) fest in die Datei eincompilieren kann.

Gruß
CHAOSFISCH
 

Kevin94

Top Contributor
Mach dir ne Startklasse in das Archiv:
Java:
public static void main(String[] args)
{
    Runtime.getRuntime().exec("java -classpath deinfile.jar -Dfile.encoding=UTF8 Startklasse");
}
 

CHAOSFISCH

Bekanntes Mitglied
Mach dir ne Startklasse in das Archiv:
Java:
public static void main(String[] args)
{
    Runtime.getRuntime().exec("java -classpath deinfile.jar -Dfile.encoding=UTF8 Startklasse");
}

Dies scheint eine gute Lösung zu sein.
So ganz versteh ich zwar noch nicht wie ich es exakt einbauen muss, aber ich arbeite mal kurz dran.
 

CHAOSFISCH

Bekanntes Mitglied
So
wenn ichs also jetzt richtig gemacht habe:
Habe die Klasse Start erstellt, den Code von oben eingefügt und in folgendes abgeändert:
"java -classpath YoutubeUploader.jar -Dfile.encoding=UTF8 youtubeuploader.view.YoutubeUploaderApp"
YoutubeUploader.jar = das Archiv in dem auch die neu erstellte Startklasse sich befindet
youtubeuploader.view.YoutubeUploaderApp = die Klasse die auch eine main Methode enthält und die Applikation tatsächlich startet.
2. Dem Builder gesagt das die Start Klasse die "Main Klasse" ist.

Scheint jetzt zu funktionieren,
Danke!
 

CHAOSFISCH

Bekanntes Mitglied
So,
ich hab jetzt ein Problem mit der Ausführung:

Java meldet:
Unable to access jarfile YoutubeUploder.jar
Vorher gings. Nun irgendwie nicht mehr.

Aufruf ist wie folgt:
java -jar YoutubeUploader.jar
 
G

Gasssst

Gast
Wie wärs wenn du einfach beim Schreiben der XML Datei die Kodierung richtig setzt?

PS: deine convert() method ist übrigens blödsinn...
 
G

Gassst

Gast
Das mit der XML bringt garnichts, wenn die Inputdaten schon kaputt sind.
Du hast doch gesagt die Daten aus der Datenbank sind in Ordnung:

Es ist alles in der DB korrekt drinnen, es kann alles wieder in das GUI richtig ausgelesen werden.
Aber sobald ich die Daten dann in einer Datei abspeichere / XML daraus erstelle sind sie falsch :O

Was denn nun? Der erste Schritt wär erstmal rauszufinden wo die Kodierung verloren geht...
 

CHAOSFISCH

Bekanntes Mitglied
Du hast doch gesagt die Daten aus der Datenbank sind in Ordnung:



Was denn nun? Der erste Schritt wär erstmal rauszufinden wo die Kodierung verloren geht...

Die Daten stehen in der DB richtig drinnen und gehen spätestens dann wieder beim auslesen kaputt, da String das defaultCharset von windows-1256 oder so hat.
Deswegen ist der eingabe punkt, gui oder db egal. Die Daten werden so oder so "zerstört".
 
G

Gassst

Gast
Die Daten stehen in der DB richtig drinnen und gehen spätestens dann wieder beim auslesen kaputt, da String das defaultCharset von windows-1256 oder so hat.
Deswegen ist der eingabe punkt, gui oder db egal. Die Daten werden so oder so "zerstört".
Hä, wenn die Daten in der Datenbank richtig drinstehen warum sollten sie beim auslesen kaputt gehen?

Ein java.lang.String hat übrigens per Definition überhaupt keine Kodierung. Ansonsten weiß ich nicht wie man sonst noch helfen kann: Stell erstmal die Stelle in der Übertragungskette fest wo das Encoding verloren geht.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Verschlüsselung von Text und Files durch RSA (Encoding Problem) Allgemeine Java-Themen 7
C Encoding Problem Windows Allgemeine Java-Themen 9
I Encoding Problem bei exec und Windows Allgemeine Java-Themen 2
S Encoding-Problem (?) Allgemeine Java-Themen 5
Y CSV Encoding Problem Allgemeine Java-Themen 6
M Problem mit Base64 Encoding Allgemeine Java-Themen 2
S String Encoding Verständnisproblem Allgemeine Java-Themen 22
X Encoding in Tomcat Allgemeine Java-Themen 2
B Input/Output Encoding ISO->UTF8 Allgemeine Java-Themen 3
Thallius Merkwürdiges StringBuilder verhalten (Char Encoding) Allgemeine Java-Themen 6
S Falsches Encoding bei Drag and Drop von Umlauten Allgemeine Java-Themen 16
M Datei wird nicht vollständig geschrieben (FileOutputStream, OutputStreamWriter, Encoding) Allgemeine Java-Themen 6
R Encoding FileWriter Allgemeine Java-Themen 1
C BASE64 encoding von Binärdaten Allgemeine Java-Themen 4
M Charset Encoding für Dateinamen Allgemeine Java-Themen 4
lumo encoding einer text-datei Allgemeine Java-Themen 2
A bufferedReader readline, encoding Allgemeine Java-Themen 5
N Encoding Unicode Textfile Allgemeine Java-Themen 5
S File encoding feststellen Allgemeine Java-Themen 4
S Bestes Text file encoding..? Allgemeine Java-Themen 36
P Textfiles laden - egal welches Encoding Allgemeine Java-Themen 9
J Encoding und Gewinnung von Zeichen aus der Hexa-Darstellung Allgemeine Java-Themen 6
P Textfile Encoding herausfinden Allgemeine Java-Themen 2
P Encoding-Probleme bei Properties-Dateien Allgemeine Java-Themen 5
R Encoding Allgemeine Java-Themen 10
B platform's default character encoding? Allgemeine Java-Themen 10
N Mal wieder char-encoding Probleme Allgemeine Java-Themen 5
M Encoding automatisch erkennen Allgemeine Java-Themen 4
M Standart Encoding des OS ermiteln Allgemeine Java-Themen 4
S [Base64] Encoding von String nicht korrekt Allgemeine Java-Themen 5
byte String Encoding Allgemeine Java-Themen 9
S File Encoding im Programm setzen? Allgemeine Java-Themen 3
krgewb Problem mit Umlauten und Eszett bei InputStream Allgemeine Java-Themen 3
Max246Sch Backtracking Problem Box Filler Allgemeine Java-Themen 6
NightVision402 VisualVM Startskript Problem Allgemeine Java-Themen 3
javaBoon86 Email Server Connection Problem Allgemeine Java-Themen 1
F Problem mit PDFBOX Library Allgemeine Java-Themen 1
A Java modul Problem Allgemeine Java-Themen 4
D Read JSON File Problem Allgemeine Java-Themen 9
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
J Problem mit JasperReports Allgemeine Java-Themen 8
M log4j Problem mit jlink Allgemeine Java-Themen 19
8u3631984 Problem beim Mocken von Record Klassen Allgemeine Java-Themen 4
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
P Selenium . getText Problem Allgemeine Java-Themen 9
A Jar zu Exe Problem Allgemeine Java-Themen 13
sserio Variablen Liste erstellt und ein Problem mit dem Index Allgemeine Java-Themen 6
S Folgendes Problem bei einem Programm Allgemeine Java-Themen 1
stormyark Problem beim Klassen erstellen Allgemeine Java-Themen 1
A Thread.sleep Problem Allgemeine Java-Themen 2
A Problem bei der Nachbarschafttest Allgemeine Java-Themen 11
Splayfer Problem: no main manifest attribute Allgemeine Java-Themen 3
G javamail Problem beim Empfangen von Nachrichten Allgemeine Java-Themen 3
Splayfer JDA Problem mit MessageCounter Allgemeine Java-Themen 0
Splayfer Problem mit BufferedWriter Allgemeine Java-Themen 3
F Streams als Alternative für dieses Problem ? Allgemeine Java-Themen 15
N Maven Problem mit Datenbanktreiber (H2 Embedded) Allgemeine Java-Themen 12
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
B Einfach Elemente zweier Arraylisten kreuz und quer vergleichen, min und max Problem? Allgemeine Java-Themen 16
C ArrayList Problem Allgemeine Java-Themen 3
kev34 nim-Spiel problem Allgemeine Java-Themen 1
D Firebase retrieve data Problem, Child Element wird nicht angesprochen Allgemeine Java-Themen 0
G Welches Problem besteht bei den Typparametern? Allgemeine Java-Themen 5
temi Problem mit Aufrufreihenfolge bei Vererbung Allgemeine Java-Themen 3
Sumo_ow "ArrayIndexOutofBoundsException: 2" Array Problem Allgemeine Java-Themen 6
T PIM basierend auf netbeans via AnyDesk Problem Allgemeine Java-Themen 3
xGh0st2014 Problem mit Java Array Allgemeine Java-Themen 1
Kirby.exe Verständnis Problem bei Rucksack Problem Allgemeine Java-Themen 6
B Eclipse-Lombok-Problem Allgemeine Java-Themen 19
I Input/Output ObjectOutputStream - Problem Allgemeine Java-Themen 7
1 Multiple Choice Knapsack- Problem Allgemeine Java-Themen 2
kodela Problem mit strukturiertem Array Allgemeine Java-Themen 18
E Problem mit Gridlayout und Button Allgemeine Java-Themen 2
A Array Problem Allgemeine Java-Themen 8
bueseb84 Problem Allgemeine Java-Themen 0
S Problem mit Arrays Allgemeine Java-Themen 1
D Nullpointer Exception Problem Allgemeine Java-Themen 5
B Problem mit meinen Klassen Allgemeine Java-Themen 6
A HashMap Methode "get()"-Problem Allgemeine Java-Themen 28
J Problem beim Umstellen auf Java jdk 13 Allgemeine Java-Themen 3
J Problem bei Install java 13 Allgemeine Java-Themen 3
X Profitable Reise Problem Allgemeine Java-Themen 32
A Problem beim öffnen von Java-Installern Allgemeine Java-Themen 1
Dann07 Problem mit JavaMail API Allgemeine Java-Themen 26
J Problem beim Generischen Klassen und Interfaces Allgemeine Java-Themen 2
L Klassen Algorithmus für das folgende Problem entwickeln? Allgemeine Java-Themen 30
J Clear-Problem Allgemeine Java-Themen 10
B Problem zu einem Java Projekt Allgemeine Java-Themen 6
S JFileChooser Problem Allgemeine Java-Themen 4
M Traveling Salesman - MST Heuristik Problem Allgemeine Java-Themen 4
J Traveling Salesman Problem Allgemeine Java-Themen 14
E Java Editor Problem mit 2er Exceptions Allgemeine Java-Themen 12
C code oder Bibliotheken für 2-Center Problem Allgemeine Java-Themen 4
M Salesman Problem - Bruteforce Algorithmus Allgemeine Java-Themen 23
S Methoden Problem mit NullPointerException Allgemeine Java-Themen 9
Javafan02 Problem mit if-clause Allgemeine Java-Themen 17
J Lombok Problem mit Konstruktoren bei Verberbung Allgemeine Java-Themen 1
kodela Event Handling Problem mit der Alt-Taste Allgemeine Java-Themen 16
W Threads Problem Allgemeine Java-Themen 15
D (Verständnis-)Problem mit Unterklasse Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben