XML Underlying stream encoding + doppelte vs. einfache Anführungszeichen

michaelarban

Mitglied
Hallo zusammen,


ich habe vor, meine bisherige Umgebung (Suse 8.1 + jdk 1.5) umzustellen auf Centos 6.2 und jdk 1.6 .

Bei den Tests hat sich folgendes Problem ergeben:

Bei der Erstellung von xml-Dateien taucht die Fehlermeldung auf

Underlying stream encoding 'ISO8859_15' and input paramter for writeStartDocument() method 'ISO-8859-1' do not match

Als workaround führe ich die Anwendung nun mit dem jvm-Parameter "Dfile.encoding" aus:

Java:
/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java -Dfile.encoding=ISO-8859-1 meineAnwendung

Die obige Fehlermeldung taucht dann nicht mehr auf und die xml-Datei wird auch korrekt erzeugt bis auf eine einzige Ausnahme:
statt
[XML]<?xml version='1.0' encoding='ISO-8859-1'?> [/XML](unter Suse8.1 + jdk 1.5) steht
[XML]<?xml version="1.0" encoding="ISO-8859-1"?>[/XML] (also mit doppelten Anfürhungzeichen)

Die xml-Datei ist ja auch mit doppelten Anfürhrungzeichen valide, jedoch wären mir die bisherigen einfachen Anführungzeichen lieber :)

Leider habe ich nicht die Java-sourcen dieser Anwendung, so dass ich keine Anpassungen machen kann.


Kann mir jemand sagen,
-woher und warum die erste Fehlermeldung (Underlying..) kommt
-wie ich einfache Anführungszeichen bekomme

Danke
 
Zuletzt bearbeitet von einem Moderator:

michaelarban

Mitglied
hallo Bleiglanz,

was meinst du mit "xml-Datei neu codieren" ?
Die xml-Datei wird durch eine java-Anwendung erzeugt, deren source-Code ich leider nicht habe.

Kann es sein, dass es am jdk liegt? früher bentzte ich jdk 1.5 , jetzt 1.6
 

Bleiglanz

Gesperrter Benutzer
Dein altes Linux hatte ein default-encoding, dein neues Linux hat auch eines, das Java-Programm schreibt normalerweise im Encoding der Plattform oder einem intern eingestelltem.

Tipp: lass mal diverse unix-tools drüberlaufen (xmllint, file) und versuch rauszukriegen wie die Datei codiert ist
 

michaelarban

Mitglied
Hallo Bleiglanz,

ich Aufruf von file test kommt

bei suse 8.1 mit jdk1.5 : "XML document text"

bei Centos 6.2 mit jdk1.6 : "XML document text"

wo kann ich bei Centos das default-Encoding ändern? ich habe mal in /etc/sysconfig/i18n folgendes eingetragen, ohne Erfolg

LANG="de_DE@euro"
SUPPORTED="de_DE.UTF-8:de_DE:de"
SYSFONT="latarcyrheb-sun16"
 

Ähnliche Java Themen

Neue Themen


Oben