tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
543
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    jeipack jeipack ist offline Mitglied Brokat
    Registriert seit
    Feb 2007
    Beiträge
    391
    Hi
    Wir schreiben via einer Javaklasse die von Tomcat aus gestartet wird (eine JSP greift auf die Javaklasse zu) eine Datei. In diese Datei wird ein Eurozeichen geschrieben €.
    Dies funktioniert grundsätzlich.

    Nun haben wir aber eine Tomcat Umgebung bei der das Eurozeichen als Fragezeichen in die Datei geschreiben wird (€ -> ?).

    Hat irgendwer eine Idee wieso?

    Ich dachte daran, dass der Tomcat selbst unter der falschen Codierung läuft, aber ich habe keine Ahnung wo und ob es so eine Einstellung gibt. URIEncoding, etc wird es ja sicher nicht sein und mit Google bin ich dann auch nicht mehr weiter gekommen.

    Hoffe mir kann wer helfen?

    Ahja zum System: Windows 2003, Tomcat 6
     
    Konnte ich dir helfen? Dann würde ich mich über eine prositive Bewertung freuen ;)

    ----------------------
    Pofessional tutorials.de lover ;)

  2. #2
    SE Tutorials.de Gastzugang
    Ich würde erstmal prüfen ob unmittelbar vor dem Schreiben in die Datei das €-Zeichen überhaupt noch vorhanden ist oder schon da nicht mehr stimmt. Falls es da noch intakt ist liegt es am Encoding der Datei selbst.
     

  3. #3
    jeipack jeipack ist offline Mitglied Brokat
    Registriert seit
    Feb 2007
    Beiträge
    391
    Unmittelbar davor existiert das Eurozeichen noch.

    Die Datei ist davor noch nicht vorhanden.

    Mit dem selben Code auf einer anderen Umgebung funktioniert es.


    Es hat sicher was mit Encoding zu tun. Allerdings habe ich keine Ahnung was.
     
    Konnte ich dir helfen? Dann würde ich mich über eine prositive Bewertung freuen ;)

    ----------------------
    Pofessional tutorials.de lover ;)

  4. #4
    SE Tutorials.de Gastzugang
    Hmm ... es kommt darauf an WIE du das €-Zeichen in die Datei schreibst. Da Java UTF-8 basiert ist ist das €-Zeichen innerhalb von Java als 2Byte-Zeichen *eben UniCode* gespeichert. Wenn du jetzt aber nur Byte-weise speicherst *über einen normalen FileOutputStream* geht der Zusammenhang verloren und aus einem 2Byte-Zeichen werden zwei 1Byte-Zeichen. Du musst daher das €-Zeichen als UTF-8 Zeichen speichern und als solches auch wieder laden. Das klingt alles kompliziert ... ist aber mit dem richtigen Stream ganz einfach.
     

  5. #5
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    @SPiKEe: Java ist UTF-16 basiert, kann UTF-8 aber genauso lesen/verarbeiten.

    @Thread: Mit welchem Programm wird die Klasse geschrieben? Schau doch mal, ob es da Einstellungen fürs Encoding gibt. Wenn du auf die Datei auch von einem Linux-/Unix-System zugreifen kannst, überprüfe das Encoding mit
    Code :
    1
    
    file -i
    (und poste den Output), vielleicht gibt es für Windows vergleichbare Programme.
    Wenn alle Stricke reißen sollte es immer noch mit der Escape-Sequenz des Euro-Zeichens,
    Code :
    1
    
    \u20AC
    funktionieren. Dein Problem wäre dann aber nur für diesen einen Fall gelöst und du hast sicher keine Lust, bei jedem Sonderzeichen die Escape-Sequenz zu suchen
     
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  6. #6
    SE Tutorials.de Gastzugang
    @genode
    bezüglich UTF-16 : man lernt nie aus ... aber das Java auf Unicode basiert wusste ich dann doch noch =D.
     

  7. #7
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
     
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 15.10.09, 08:54
  2. Antworten: 2
    Letzter Beitrag: 12.07.08, 20:42
  3. apache2 + tomcat mit mod_jk --> zugriff auf tomcat über apache2
    Von reweiss im Forum Hosting & Webserver
    Antworten: 0
    Letzter Beitrag: 16.10.07, 14:30
  4. [Maven] War File ins Tomcat/webapps Verzeichnis kopieren
    Von wSam im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 3
    Letzter Beitrag: 02.03.07, 11:32
  5. Antworten: 1
    Letzter Beitrag: 27.05.05, 10:31

Stichworte