java 1.6.0_11 UTF-8 Formatänderung

WolleH

Neues Mitglied
Moin moin,

wir sind jetzt in eine richtige Falle getappt. Seit JDK1.6.0_11 hat sich das UTF-8 Format geändert; siehe (1). Wir haben aber noch massig Files mit dem alten Format rum liegen. Diese wurden und werden unter 1.6.0_07 geschrieben(ca. 4500! Datenerfassungsstationen in Betrieb). Beim Versuch diese Dateien zu verarbeiten, sind wir bei ca. 15% der Files auf Probleme gestoßen(Hashes stimmen nicht, Entschlüsseln geht gar nicht). Der Datenimporter läuft auf 1.6.0_16 und 64bit. Als Schnellschuss läuft der jetzt vorläufig auf 1.6.0_07(32bit) und funktioniert. Wir sind auch 100%ig sicher, das die Formatänderung Ursache unserer Probleme ist. War schwer genug zu finden. Mir gefällt der Schnellschuss aber nicht wirklich, lieber wäre mir eine Möglichkeit Dateien im alten und neuen Format lesen zu können.
Der Datenfluss ist grob gesagt so:
String(enthält einen xml Klops) --> byte[] aus String.getBytes("UTF-8") --> FileOutputStream.write() --> Datei --> FileInputStream.read() --> byte[] -*-> new String(byte[], "UTF-8")
Bis zum * ist alles ok. Nur leider liefert der Konstruktor unter java >= 1.6.0_11 teilweise Mist. Morgen machen wir Tests, wie sich diverse Reader verhalten.

Ich habe schon gewühlt, aber noch nicht wirklich hilfreiches gefunden. Bin für jede Idee offen.

Grüße und vielen Dank

(1) Java SE 6 Update 11 Release Notes.
 
Moin moin,

Dateien umstellen, wenn wir das könnten, dann könnte man das einfach beim Einlesen machen.
Wir haben aber noch keinen Weg die Dateien unter >=1.6.0_11 fehlerfrei zu lesen.
Format umstellen geht nicht, die Produzenten sind weltweit verteilt und laufen nun mal mit 1.6.0_07 und es sind schon ca. 1,5 Mill. Dateien da.

Trotzdem danke, ich bin immer noch ein bissel geschockt. So eine Formatumstellung ist heftig, wenn man persistente Daten hat. Man sucht ja Fehler immer zuerst bei sich, hat zum Glück nur 3 Tage gekostet. Wenn wir was raus kriegen, sage ich hier auch Bescheid.
 

Neue Themen


Zurück
Oben