Der Martin: Zeichensatzproblem

Beitrag lesen

Moin,

Auf dem Windows Dateisystem befindet sich diese Dateien.
Das+ist~mit@sönderZüchenß&.ps
Eng_für_ProjVA_2014.pdf

Nach dem Uplaod sieht es dann auf der Seite so aus:

das erste Beispiel, in dem aus dem u anscheinened uÌ wird, kommt mir tatsächlich etwas eigenartig vor. Das zweite sieht aber nach einem korrekt in UTF-8 codierten Namen aus, der dann aber falsch als ISO-8859-x interpretiert wird. Du hast offensichtlich keine durchgängige Verarbeitung in UTF-8.

Nochmals um was es geht:
Ein Anwender wählte eine Datei (PDF, TXT, Doc, PS ...) von seinem lokalen Windows System aus und lädt sie über eine Webseite hoch.

Ja, und auf die im Dateisystem verwendete Codierung hast du keinen Einfluss. Das ist leider eine Schwachstelle in der Kette. Allerdings ist das IMO nicht einmal das Problem. Das Grundproblem ist wohl eher, dass irgendein Glied in deiner Verarbeitungskette die Darstellung von Umlauten als Basiszeichen + Combining Diaresis, die in Unicode als Variante erlaubt ist, nicht beherrscht.

Die Webseite ist mit utf-8 kodiert;

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Ist sie das wirklich, oder steht das nur so drin?

Der Dateiname (es geht nur um den Dateinamen) wird in einem <select> angezeigt.

Ohne dem utf8_decode klappt zwar der Upload, aber die Dateinamen sehen bei Umlauten und Sonderzeichen wie oben aus.

Das deutet darauf hin, dass deine Webseite in Wirklichkeit eben nicht UTF-8 benutzt!

Bisher klappte alles gut soweit bis jetzt diese Datei von einem MAC kam. Wie gesagt: Wenn man bei dieser Datei mit dem Windows Explorer das original ü löscht und dann neu schreibt ...

... dann wird u + Combining Diaresis (\U+0075, \U+0308) in die "homogene" Darstellung (U+00FC) umgewandelt. Beides sind gültige Unicode-Darstellungen des Zeichens ü.

... geht es auch wieder mit utf8_decode.

Und das solltest du ausbessern: Wenn durchgängig überall dieselbe Codierung verwendet wird (z.B. UTF-8), ist ein solches Hin- und Herwandeln, bei dem ja auch Information verlorengehen kann, nicht nötig. Wahrscheinlich ist das auch die Ursache für das uÌ aus dem oben gezeigten Beispiel.

So long,
 Martin

--
Kriege kennen keinen Gewinner. Es gibt nur Verlierer und das sind wir.
  (Hotti)
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
0 92

Zeichensatzproblem

hawkmaster
  • sonstiges
  1. 0
    Auge
    1. 0
      hawkmaster
      1. 0
        Auge
        1. 0
          hawkmaster
          1. 0
            Matthias Apsel
            1. 0
              hawkmaster
          2. 0
            Der Martin
            1. 0
              hawkmaster
              1. 0

                Bug?

                hawkmaster
                1. 0
                  Der Martin
                  1. 0
                    hawkmaster
                    1. 0
                      Der Martin
                      1. 0
                        hawkmaster
                        1. 0
                          Tom
                          1. 0
                            hawkmaster
                          2. 0
                            Der Martin
                            1. 0

                              Normalisierung,

                              hawkmaster
                          3. 0

                            Bug? Aber ein mächtiger! Oder wir sind beide bloed (ohne ö)

                            Tom
                            1. 0
                              Tom
                            2. 0

                              Das wird ja immer irrer!

                              Tom
                              1. 0
                                hawkmaster
                                1. 0
                                  Auge
                                  • meinung
                                  1. 0
                                    Tom
                                  2. 0
                                    hawkmaster
                                    1. 0
                                      Auge
                                2. 0
                                  Tom
                                  1. 0
                                    Der Martin
                                    1. 0

                                      Windows Zeichentabelle

                                      Tom
                                      1. 0
                                        Der Martin
                                        1. 0
                                          Tom
                                          1. 0
                                            Der Martin
                                            1. 0
                                              Tom
                                              1. 0
                                                Der Martin
                                              2. 0
                                                Tom
                                                1. 0
                                                  Der Martin
                                                  1. 0
                                                    Tom
                              2. 0
                                hawkmaster
                                1. 0
                                  Der Martin
                                  1. 0
                                    hawkmaster
                                    1. 0
                                      Tom
                                      1. 0
                                        hawkmaster
                                        1. 0
                                          hawkmaster
                                          1. 0
                                            Auge
                                            1. 0
                                              hawkmaster
                                              1. 0
                                                Auge
                                                1. 0
                                                  hawkmaster
                                                2. 0
                                                  Tom
                                                  1. 0

                                                    Filenames für Windows oder Linux(?) kastrieren!

                                                    Tom
                                                    • php
                                                    1. 0

                                                      HILFE! Filenames für Windows oder Linux(?) kastrieren!

                                                      Tom
                                                      1. 0
                                                        Felix Riesterer
                                                        1. 0

                                                          Klasse für utf-8 Umwandlungen und utf-8 Erkennung

                                                          Tom
                                                          1. 0

                                                            Archivierung von Threads

                                                            Matthias Apsel
                                                            • zu diesem forum
                                                        2. 0
                                                          hawkmaster
                                                          1. 2
                                                            Christian Kruse
                                                            1. 0
                                                              Tom
                                                            2. 0
                                                              hawkmaster
                                                              1. 0
                                                                Christian Kruse
                                                                1. 0

                                                                  Die Lösung

                                                                  hawkmaster
                                                                  1. 0

                                                                    Extension

                                                                    hawkmaster
                                                                    1. 0
                                                                      Tom
                                                                      1. 0
                                                                        Tom
                                                                        1. 0

                                                                          Bitte @ Gunnar: Abbildungstypen im Normalizer erläutern

                                                                          Tom
                                                                          • programmiertechnik
                                                                          1. 0
                                                                            Gunnar Bittersmann
                                                                            1. 0
                                                                              Tom
                                                                  2. 0
                                                                    Tom
                                                                  3. 0

                                                                    Die Lösung, noch nicht ganz!

                                                                    Tom
                                                        3. 0
                                                          Gunnar Bittersmann
                                                      2. 0
                                                        hotti
                                                  2. 0
                                                    hawkmaster
                                                    1. 0
                                                      Der Martin
                                                      1. 0

                                                        genaus so

                                                        hawkmaster
                                              2. 0
                                                Tom
                                                1. 0

                                                  versehentlich geschlossener Tab

                                                  Matthias Apsel
                                          2. 0
                                            Tom
                                          3. 3
                                            Christian Kruse
    2. 0
      hawkmaster
      1. 0
        Auge
        1. 0
          hawkmaster
  2. 0
    Matthias Apsel
    1. 0
      Matthias Apsel
      1. 0
        hawkmaster
    2. 0
      hawkmaster
  3. 0
    Gunnar Bittersmann
    1. 0
      Tom
      1. 0
        Gunnar Bittersmann
    2. 0
      hawkmaster
      1. 0
        Auge
      2. 0
        Christian Kruse
  4. 0
    Tom
    1. 0
      hawkmaster
  5. 0
    Jörg Reinholz