Zip umlaute

Brezensalzer

Mitglied
Hallo,

ich verwende Java 6 und möchte zip-Archive entpacken.
Dies funktioniert grundsätzlich, allerdings bin ich auf das allbekannte Problem der Zeichencodierung (z.B. Umlaute) gestoßen. Leider kann ich nicht auf Java 7 umsteigen, was natürlich alles vereinfachen würde.

Nach diversem durchstöbern bin ich auf folgende Lösungen gestoßen:
- Ant
- TrueZip
- jazzlib
...

Würde gerne einen Ratschlag bekommen, welche von diesen oder noch zusätzlichen das eleganteste für dieses Problem ist.

Gruß
 
I

irgendjemand

Gast
hat die zip-datei selbst umlaute im dateinamen oder die dateien innerhalb des zip ?

allgemein : man sollte NIE umlaute verwenden da diese in aller regel OS-abhängig codiert werden ...

normalerweise solltest du aber über die enumeration ganz normal auf die einzelnen elemente zugreifen
 

Brezensalzer

Mitglied
Beides: also Dateiname und innerhalb der Datei.

Du hast schon recht, dass man normalerweise keine Umlaute verwenden sollte. Ich finde aber trotzdem, dass man diesen Fall untersuchen und eine Lösung finden muss. In meinem Fall kann ich nicht ausschließen, dass Umlaute nicht verwendet werden. Aber das ist von Anwendung zu Anwendung unterschiedlich.

Ich hab mich aktuell für die Apache Bibliothek entschieden (org.apache.commons.archivers.zip.*).

Für alle, die Java 7 verwenden können die Standardlibrary benutzen.
 
I

irgendjemand

Gast
hmm .. wenn du nicht ausschließen kannst das die quell-daten umlaute enthalten *gleich welcher art* solltest du dir gedanken darüber machen warum diese files überhaupt umlaute enthalten ...
wenn diese von einer anderen software stammen sollte man den entwickler *schalgen* das er sich darum nicht gekümmert hat ...
wenn diese daten von usern stammen *welche mit unter so wenig plan von der materie wie ne scheibe brot haben* sollte man diese vorher darauf hinweise das man keine umlaute verwenden sollte ...

die letzte sehr drastische methode : alles was "sonderzeichen" enthält schlicht blockieren / ignorieren ...
meine begründung : warum sollte man sich mit schlechtem input herumschlagen wenn es für sowas klar definierte vorgaben gibt ? *es ist zwar richtig das ein deutscher das grund-prinzip des rechner erfunden hat *konrad zuse* ... aber da der moderne mist überwiegend aus dem englisch-sprachigen raum *vorzugsweise USA* stammt sollte man sich auf den zeichen-vorat der englischen sprache beschränken* ...

aber mal ne gegenfrage : warum ist kein wechsel auf Java7 möglich ? vorgaben vom arbeitgeber / uni / schule ? dann sollte man deren it-abteilung mal stecken warum ein update mehr vorteile als nachteile hat ... *ich find sowas immer wieder ur-komisch : große unternehmen mit vergleichsweise großen IT-abteilungen die es nicht auf die reihe bekommen in ihrer thin-client software welche zentral vom server läuft das update einzuspielen ... dann macht man halt mal ne viertel stunde kaffee pause ... länger sollte sowas nicht dauern*
 

California

Aktives Mitglied
meine begründung : warum sollte man sich mit schlechtem input herumschlagen wenn es für sowas klar definierte vorgaben gibt ? *es ist zwar richtig das ein deutscher das grund-prinzip des rechner erfunden hat *konrad zuse* ... aber da der moderne mist überwiegend aus dem englisch-sprachigen raum *vorzugsweise USA* stammt sollte man sich auf den zeichen-vorat der englischen sprache beschränken* ...

Das ist so blöd, das es fast schon wieder gut ist. Die "Grundprinzipien des Rechners" stammen von Carl Friedrich Gauss (Deutscher, Dualsystem), George Boole (Engländer, Aussagenlogik) und Charles Babbage (Engländer, "Analytical Machine") und wenn man weitergeht, noch von Joseph-Marie Jacquard (Franzose, erste "programmierbare" Maschine). Das war alles im 18. und 19. Jahrhundert. Zuse und Co. hatten als erste die technischen Möglichkeiten, Computer zu bauen.

Und ich als Deutscher wehre mich dagegen, von irgendeinem trolligen Hanswurst (der sich ja wohlweislich schon anonym gemeldet hat) vorgeschrieben zu bekommen, das man die in unserer Sprache üblichen Zeichen nicht benutzen soll. Sag das mal zu einem Spanier oder Franzosen...

So, jetzt @TO und zum Problem:
Schon mal bein Öffnen der Streams das Encoding geprüft? Wenn Du Daten neu schreibst, solltest Du UTF-8 verwenden, damit ist auch die erste Einlassung unseres trolligen Herrn "irgendjemand" erledigt, weil UTF-8 eben nicht systemabhängig, sondern international genormt und auf (fast) allen Rechnern verfügbar ist. Und kann deutsche Umlaute genausogut wie französische oder spanische Akzente.
Wahrscheinlich hast Du aber bereits Daten vorliegen. Hier musst Du halt das Encoding rausfinden, in dem diese geschrieben sind. Guckst Du : Zeichensalat ? Wikipedia.
 
Zuletzt bearbeitet:
I

irgendjemand

Gast
wenn man sich mit einem rechner beschäftigt muss man leider dessen einschränkungen hinnehmen ...
und dazu zählt nunmal auch das im allgemeinen sonderzeichen *wie deutsche umlaute oder z.b. ganze sprachen wenn man mal ans kyrillische denkt* speziell codiert werden müssen ...
das geht leider noch auf die anfänge zurück als zeichen noch mit ASCII in 7bit codiert wurden *wesshalb DEL heutzutage immernoch auf 0x7F rumgeistert* ...

leider sind auch alle modernen systeme davon betroffen da solche "fehler" über die zeit immer wieder kopiert wurden ...

wenn du wirklich so ergeizig bist und der maschine "deutsch" beibringen willst ... dann mach dich doch mal daran ein komplett neues system zu entwickeln *hardware , code-tabellen , OS , etc* ...
du wirst festestellen : du müsstest ALLES neu machen ... wenn du nicht *zumindest über umwege* auf alte sachen welche diesen "fehler" haben zurückgreifen willst ...
und meinst du nicht auch das es da etwas einfacher ist sich diesen umständen zu beugen und einfach umlaute bei solchen dingen weg zu lassen ?

ich mein : was passiert wissen wir : mach dir mal den spass eine datei mit einem "deutschen" namen zu erstellen und diese von einem WIN system via FTP auf einen unix-server zu laden ... das chaos ist vorprogrammiert : undschiedliche encodings / charsets und schon ist der datei-name zerstört ...
*ja , jetzt kann man argumentieren das heutzutage eigentlich alles auf unicode laufen sollte ... aber speziell windows hält sich da ja bekannter maßen auch in seiner neuesten fassung *Win7* immer noch nicht daran*
 

Empire Phoenix

Top Contributor
Also mein linxu server hat damit keine probleme, wozu gibt es die automatische umcodierung(die der ftp erledigt) der Dateinamen von cp1252 nach utf8 und zurück auch sonst.
 
Zuletzt bearbeitet:

Empire Phoenix

Top Contributor
Man könnte theoretisch auch erst alle Dateinamen angucken und auf aufälligkeiten wie das a1/4 zeichen oder ähnliches durchsuchen und dann entsprechend als failback eine manuelle Zeichenconvertierung vornehmen.
(Bzw im simplesten fall einfach alle nicht a-z0-9 durch _ ersetzen und beim einlesen der entpackten datein analog selbiges machen mit den namen.)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N iText keine Sonderzeichen und Umlaute unter Windows Allgemeine Java-Themen 13
O Leerzeichen und Umlaute im Pfad einer Java Applikation machen Probleme Allgemeine Java-Themen 13
L Tess4j Umlaute anzeigen Allgemeine Java-Themen 3
T Umlaute in Eclipse einlesen funktioniert nicht Allgemeine Java-Themen 16
T Input/Output Konsole gibt trotz printf keine Umlaute aus Allgemeine Java-Themen 17
T Umlaute werden falsch gedruckt Allgemeine Java-Themen 2
F CaesarVerschlüsselung Umlaute Allgemeine Java-Themen 7
F Windows Umlaute Allgemeine Java-Themen 15
MiMa Umlaute beim Einlesen von Dateinamen Allgemeine Java-Themen 12
C Regex (Case insensitive und Umlaute) Allgemeine Java-Themen 4
S jar-Datei stellt Umlaute nicht dar Allgemeine Java-Themen 6
K Javamail:Probleme mit der Darstellung von Umlaute in Subject Allgemeine Java-Themen 15
S Umlaute machen probleme Allgemeine Java-Themen 3
E HTML File mit Umlaute einlesen Allgemeine Java-Themen 8
R Base64_decode Umlaute Problem. Allgemeine Java-Themen 8
J Umlaute bei Commons-Fileupload Allgemeine Java-Themen 3
T Wie konvertiere ich Umlaute (ä -> ae) ? Allgemeine Java-Themen 7
J Umlaute in regulären Ausdrücken Allgemeine Java-Themen 3
kodela replace und die Umlaute Allgemeine Java-Themen 10
D zeichenerkennung für umlaute bei eingabe Allgemeine Java-Themen 4
S Mac OS JRE verhunst Umlaute Allgemeine Java-Themen 6
G Datei einlesen: Umlaute sind Fragezeichen Allgemeine Java-Themen 23
cover1012 Umlaute in id3 Tags Allgemeine Java-Themen 2
F Umlaute: E-Mail per JavaMail und Textfile Allgemeine Java-Themen 5
J JAR und Umlaute Allgemeine Java-Themen 4
B Umlaute über Konsoloe ein- und ausgeben Allgemeine Java-Themen 5
G Windows Shell Umlaute Problem Allgemeine Java-Themen 19
W Umlaute umwandeln bekomme nur Leerzeichen raus. Allgemeine Java-Themen 11
E Umlaute: FileWriter vs. FileOutputStream Allgemeine Java-Themen 3
W Umlaute in Dateien und Verzeichnissen. Bekomme Fehler Allgemeine Java-Themen 5
M Umlaute richtig dastellen? Allgemeine Java-Themen 4
X Umlaute im JAR-File Allgemeine Java-Themen 4
B Umlaute-Problem bei Plattform-Wechsel Allgemeine Java-Themen 9
C Umlaute mysql Allgemeine Java-Themen 3
F Umlaute in Text . Allgemeine Java-Themen 7
V Umlaute, sonderzeichen beim HTMLEditiorKit Allgemeine Java-Themen 2
O Probleme mit Umlaute Allgemeine Java-Themen 12
B html umlaute decoden Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben