hotti: Mein lieber Valigator

0 69

Mein lieber Valigator

hotti
  • html
  1. 0
    MudGuard
    1. 0
      hotti
      1. 0
        Gunnar Bittersmann
        1. 0
          hotti
          1. 0
            Gunnar Bittersmann
            1. 0
              hotti
              1. 0
                Gunnar Bittersmann
                1. 0
                  hotti
                  1. 0
                    Gunnar Bittersmann
                    1. 0
                      hotti
                      1. 0
                        Gunnar Bittersmann
                        1. 0
                          hotti
                          1. 0
                            Gunnar Bittersmann
                            1. 0
                              hotti
                              1. 0
                                Gunnar Bittersmann
                                1. 0
                                  hotti
                                  1. 0
                                    Gunnar Bittersmann
          2. 0
            MudGuard
            1. 0
              hotti
      2. 0
        MudGuard
        1. 0
          hotti
          1. 0
            Gunnar Bittersmann
            1. 0
              hotti
              1. 0
                Der Martin
                1. 0
                  hotti
                  1. 0
                    Der Martin
                    1. 0
                      hotti
                      1. 1
                        Der Martin
                        1. 0
                          hotti
                          1. 0
                            Gunnar Bittersmann
                      2. 0
                        dedlfix
                        1. 0
                          hotti
                          1. 0
                            Der Martin
                            1. 0
                              Længlich
                              1. 0
                                Der Martin
                      3. 0
                        Gunnar Bittersmann
                        1. 0
                          hotti
                          1. 0
                            Gunnar Bittersmann
                            1. 0
                              hotti
                              1. 0
                                Gunnar Bittersmann
                          2. 0
                            dedlfix
                            1. 0
                              JürgenB
                          3. 0
                            Struppi
                            1. 0
                              hotti
                              1. 0
                                Struppi
                                1. 0
                                  hotti
                                  1. 0
                                    Struppi
                                    1. 0
                                      hotti
                                      1. 0
                                        Struppi
                                    2. 0
                                      dedlfix
                                      1. 0
                                        Struppi
                                        1. 0
                                          Beat
                                          1. 0
                                            Struppi
                                            1. 0
                                              Beat
                                              1. 0
                                                dedlfix
                                                1. 0
                                                  Beat
                                                  1. 0
                                                    dedlfix
                                        2. 0
                                          dedlfix
                                          1. 0
                                            hotti
                                            1. 0
                                              Struppi
                                          2. 0
                                            Struppi
                                            1. 0
                                              dedlfix
                                  2. 0
                                    Gunnar Bittersmann
                                    1. 0
                                      hotti
                                      1. 0
                                        Gunnar Bittersmann
                                        1. 0
                                          hotti
                                          1. 0
                                            Gunnar Bittersmann
              2. 0
                Gunnar Bittersmann

moin,

wieso meckert der hier:

Warning  Line 357, Column 393: reference to non-SGML character

...owser in diesem Fall als € darstellen....

Bemängelt wird das Zeichen in der Mitte ‚

Wieso darf ich das nicht als NCR darstellen? Btw., die Seite wird utf8 codiert ausgeliefert und ist als

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

ansonsten ok.

Bitte mal um Hinweise,
Hotti

--
Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
  1. Hi,

    ...owser in diesem Fall als &#xE2;&#x82;&#xAC; darstellen....

    Bemängelt wird das Zeichen in der Mitte &#x82;

    Wieso darf ich das nicht als NCR darstellen? Btw., die Seite wird utf8 codiert ausgeliefert und ist als

    Weil die Zeichen 128 bis 159 (x80 bis x9F) in HTML-Dokumenten nicht vorkommen dürfen.
    Steht so in der SGML-Deklaration für HTML drin.

    Nimm den zero-width-space x200B anstelle des break-permitted-here.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
    1. Hi,

      Bemängelt wird das Zeichen in der Mitte &#x82;

      Wieso darf ich das nicht als NCR darstellen? Btw., die Seite wird utf8 codiert ausgeliefert und ist als

      Weil die Zeichen 128 bis 159 (x80 bis x9F) in HTML-Dokumenten nicht vorkommen dürfen.
      Steht so in der SGML-Deklaration für HTML drin.

      Wow, vielen Dank!
      (ich dachte bis jetzt immer, in utf8 darf ich _alles_ darstellen)

      Nimm den zero-width-space x200B anstelle des break-permitted-here.

      Das ist zwar nicht das, was ich brauche, aber ein Komma tuts auch ;-)

      Danke und viele Grüße,
      Horst Hammelfleisch

      1. @@hotti:

        nuqneH

        Nimm den zero-width-space x200B anstelle des break-permitted-here.

        Das ist zwar nicht das, was ich brauche, aber ein Komma tuts auch ;-)

        Was brauchst du denn? U+2063 INVISIBLE SEPARATOR?

        Qapla'

        --
        Volumen einer Pizza mit Radius z und Dicke a: pi z z a
        1. hi,

          Was brauchst du denn? U+2063 INVISIBLE SEPARATOR?

          Tja, wenn ich das wüsste, gute Frage ;-)

          Brauchen tu ich &#x82; und das sieht bei mir aus wie ein Komma. Also es sind die _Einzelteile_ des Euro E2.82.AC, wie sehen die denn bei Euch aus?

          Hotti

          1. @@hotti:

            nuqneH

            Also es sind die _Einzelteile_ des Euro E2.82.AC

            Hä??

            Die Einzelteile des Eurozeichens sind ein Bogen und zwei Striche; ganz gewiss nicht E2.82.AC.

            Wie’s scheint, brauchst du nochmal die Tips für Fragende.

            Qapla'

            --
            Volumen einer Pizza mit Radius z und Dicke a: pi z z a
            1. hi,

              Die Einzelteile des Eurozeichens sind ein Bogen und zwei Striche;

              ja, für den Endverbraucher :-)

              ganz gewiss nicht E2.82.AC.

              Doch. So kommt ein € aus

              • einer UTF-8-Datei
              • einem DB-Handle
              • einem Dateihandle
              • STDIN

              Und das will ich auf ner HTML-Seite darstellen, also diejenigen Zeichen, die ein Browser daraus macht, wenn er zeichenmäßig nur 8 Bit versteht.

              Hotti

              1. @@hotti:

                nuqneH

                ganz gewiss nicht E2.82.AC.

                Doch. So kommt ein € aus

                • einer UTF-8-Datei
                • einem DB-Handle
                • einem Dateihandle
                • STDIN

                Und nichts davon ist für dich von Interesse, da du nie auf Byte-Ebene, sondern immer auf Zeichenebene arbeitest.

                Und das will ich auf ner HTML-Seite darstellen, also diejenigen Zeichen, die ein Browser daraus macht, wenn er zeichenmäßig nur 8 Bit versteht.

                Hä??

                Qapla'

                --
                Volumen einer Pizza mit Radius z und Dicke a: pi z z a
                1. hi,

                  Und nichts davon ist für dich von Interesse, da du nie auf Byte-Ebene, sondern immer auf Zeichenebene arbeitest.

                  Es gibt mit Sicherheit ne Menge Leute außer mir, die das interessieren könnte, davon geht ich mal aus.

                  Hotti

                  1. @@hotti:

                    nuqneH

                    Und nichts davon ist für dich von Interesse, da du nie auf Byte-Ebene, sondern immer auf Zeichenebene arbeitest.

                    Es gibt mit Sicherheit ne Menge Leute außer mir, die das interessieren könnte, davon geht ich mal aus.

                    Mir ist bisher weder klar, was dich interessiert noch wovon du ausgehst.

                    Auch nicht, wer dich interessiert und mit wem du ausgehst.

                    Aber für den Anfang würde es genügen, wenn du ersteres näher erläutern würdest.

                    Qapla'

                    --
                    Volumen einer Pizza mit Radius z und Dicke a: pi z z a
                    1. hi,

                      Aber für den Anfang würde es genügen, wenn du ersteres näher erläutern würdest.

                      Ich will auf einer validen Seite darstellen, wie der Euro auf einer nicht-validen Seite aussieht, die mit einer unpassenden Zeichencodierung ausgeliefert wurde. Was ist daran so schwer zu verstehen?

                      Hotti

                      1. @@hotti:

                        nuqneH

                        Ich will auf einer validen Seite darstellen, wie der Euro auf einer nicht-validen Seite aussieht, die mit einer unpassenden Zeichencodierung ausgeliefert wurde. Was ist daran so schwer zu verstehen?

                        Aha, du willst darstellen, welchen Zeichen die Bytesequenz E2 82 AC enspricht, wenn sie nach Windows-1252 decodiert wird. Warum sagst du das nicht gleich?

                        E2 ist das Zeichen U+00E2 'â'.
                        82 ist das Zeichen U+201A '‚'.
                        AC ist das Zeichen U+00AC '¬'.

                        E2 82 AC sind also die Zeichen '€'. Das darfst du gerne so im Quelltext so notieren. Du verwendest doch eine sinnvolle Zeichencodierung (UTF-8), oder?

                        Du kannst die Zeichen aber auch escapen: '&#xE2;&#x201A;&#xAC;'.

                        Qapla'

                        --
                        Volumen einer Pizza mit Radius z und Dicke a: pi z z a
                        1. hi,

                          Aha, du willst darstellen, welchen Zeichen die Bytesequenz E2 82 AC enspricht, wenn sie nach Windows-1252 decodiert wird. Warum sagst du das nicht gleich?

                          Ich hab aber auch ne Lange Leitung heute. Also der Browser kriegt einen ISO-8859-1-Header, dann ein x82, decodiert das nach CP 1252 und dann stellt er das x82 als x201A dar!?

                          Machn das alle Browser!?

                          Hotti

                          There is a hole in the bucket...

                          1. @@hotti:

                            nuqneH

                            Ich hab aber auch ne Lange Leitung heute.

                            Ja.

                            Also der Browser kriegt einen ISO-8859-1-Header, dann ein x82, decodiert das nach CP 1252 und dann stellt er das x82 als x201A dar!?

                            Machn das alle Browser!?

                            Etliche. Alle? Verlassen würde ich mich nicht darauf.

                            Qapla'

                            --
                            Volumen einer Pizza mit Radius z und Dicke a: pi z z a
                            1. h1,

                              Ich hab aber auch ne Lange Leitung heute.

                              Ja.

                              Also der Browser kriegt einen ISO-8859-1-Header, dann ein x82, decodiert das nach CP 1252 und dann stellt er das x82 als x201A dar!?

                              Machn das alle Browser!?

                              Etliche. Alle? Verlassen würde ich mich nicht darauf.

                              Hmm, hab grade einen erwischt, der das macht. Also darf ich in meiner Doku ja nicht grafisch zeigen, was der Browser anzeigt, denn andere Brausen zeigen ja was Anderes. Ergo werde ich den Satz:

                              "Den Euro würde der Browser in diesem Fall als &#xE2;&#x82;&#xAC; darstellen."

                              einfach so im Quelltext stehenlassen, damit der Besucher sehen kann, wie _sein_ Browser den Euro mit einer falschen Codierung darstellt. Auf die Gefahr hin, dass meine Seite nicht ganz valide ist.

                              Aber in ASCII schreibe ich das noch dazu, also in Worten, dass manche Browser aus dem x82 ein U+201A machen. X vor U sozusagen.

                              Die lügen doch alle, die Browser ;-)

                              Hotti

                              1. @@hotti:

                                nuqneH

                                Ergo werde ich den Satz:
                                "Den Euro würde der Browser in diesem Fall als &#xE2;&#x82;&#xAC; darstellen."
                                einfach so im Quelltext stehenlassen, damit der Besucher sehen kann, wie _sein_ Browser den Euro mit einer falschen Codierung darstellt.

                                Würde ich nicht machen, sondern „als â&#x201A;¬ darstellen“.

                                Ich würde den hypothetischen Fall ignorieren, dass ein Browser x82 nicht gemäß windows-1252 interpretiert, wenn ihm ISO-8859-x gesagt wurde.

                                'â' und '¬' müssen auch in ISO 8859-1 nicht escapet werden.

                                Auf die Gefahr hin, dass meine Seite nicht ganz valide ist.

                                Nicht ganz schwanger?

                                Die lügen doch alle, die Browser ;-)

                                Manche Seitenautoren lügen. Die Browser machen das Beste draus.

                                Qapla'

                                --
                                Volumen einer Pizza mit Radius z und Dicke a: pi z z a
                                1. h1,

                                  Würde ich nicht machen, sondern „als â&#x201A;¬ darstellen“.

                                  Hmmmnnnja....

                                  Auf die Gefahr hin, dass meine Seite nicht ganz valide ist.

                                  Valide ja, aber Warnmeldung wegen dem falschen Komma.

                                  Manche Seitenautoren lügen. Die Browser machen das Beste draus.

                                  Auf Letzteres ist kein Verlass ;-)

                                  Hotti

                                  --
                                  Zwischen geht und nicht geht, gibt es ungezählte Möglichkeiten, den Besucher mit Fehlermeldungen so vollzuballern, dass er an eigenes Verschulden glaubt.
                                  1. @@hotti:

                                    nuqneH

                                    Valide ja

                                    Ähm ja. Wenn du '&#x82;' im Quelltext hast, hast du ja kein unerlaubtes Zeichen drin. '&', '#', 'x', '', '8', '2' und ';' sind ja alle erlaubt.

                                    Aber '&#x82;' _referenziert_ auf ein unerlaubtes Zeichen. Das meldet der Validator als _Warnung_: reference to non-SGML character.

                                    Hast du hingegen nicht die NCR, sondern das Byte x82 im Quelltext (U+201A '‚' windows-1252-codiert („ANSI“) gespeichert), dann ist dies bei ISO 8859-x ein unerlaubtes Zeichen. Das meldet der Validator als _Fehler_: non SGML character number 130.

                                    Ist aber als Zeichencodierung windows-1252 angegeben, dann ist x82 im Quelltext erlaubt. Keine Warnung, kein Fehler.

                                    aber Warnmeldung wegen dem falschen Komma.

                                    Ja, „Komma“ ist falsch. Es ist ein Anführungszeichen. Das hatten wir doch schon. Das hatten wir doch schon.

                                    Und rettet den Genitiv!

                                    Qapla'

                                    --
                                    Volumen einer Pizza mit Radius z und Dicke a: pi z z a
          2. Hi,

            Brauchen tu ich &#x82; und das sieht bei mir aus wie ein Komma. Also es sind die _Einzelteile_ des Euro E2.82.AC, wie sehen die denn bei Euch aus?

            Das Eurozeichen ist x20AC - in UTF-8 sind das die Bytes xE2 x82 xAC.
            Aber warum Du anstelle des Eurozeichen die Bytes des UTF-8-Euros als Characters haben willst, ist mir schleierhaft, insbesondere, wenn Du sie dann auch noch teilweise durch komplett andere Zeichen ersetzen willst (x82 durch x2C) ...

            cu,
            Andreas

            --
            Warum nennt sich Andreas hier MudGuard?
            O o ostern ...
            Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
            1. hi,

              Das Eurozeichen ist x20AC - in UTF-8 sind das die Bytes xE2 x82 xAC.
              Aber warum Du anstelle des Eurozeichen die Bytes des UTF-8-Euros als Characters haben willst, ist mir schleierhaft, insbesondere, wenn Du sie dann auch noch teilweise durch komplett andere Zeichen ersetzen willst (x82 durch x2C) ...

              Na Du hast doch die Ersetzung als Erster vorgeschlagen.

              https://forum.selfhtml.org/?t=194420&m=1300001

              Hotti

      2. Hi,

        Bemängelt wird das Zeichen in der Mitte &#x82;
        Wieso darf ich das nicht als NCR darstellen? Btw., die Seite wird utf8 codiert ausgeliefert und ist als

        Weil die Zeichen 128 bis 159 (x80 bis x9F) in HTML-Dokumenten nicht vorkommen dürfen.
        Steht so in der SGML-Deklaration für HTML drin.

        Wow, vielen Dank!
        (ich dachte bis jetzt immer, in utf8 darf ich _alles_ darstellen)

        Im Unicode (egal ob UTF-8 oder UTF-16 oder ...) darfst Du das Zeichen x82 ja auch verwenden.

        Aber in HTML-Dokumenten darfst Du (egal ob Deine Datei UTF-8 oder ISO-8859-1 oder ... codiert ist) die Zeichen 128 bis 159 (und noch einige andere, siehe SGML-Deklaration) nicht verwenden.

        Nimm den zero-width-space x200B anstelle des break-permitted-here.

        Das ist zwar nicht das, was ich brauche,

        aber das, was Unicode als Ersatz vorschlägt.

        aber ein Komma tuts auch ;-)

        Ein sichtbares Zeichen soll Ersatz für ein Steuerzeichen sein?

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        O o ostern ...
        Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
        1. hi,

          Ein sichtbares Zeichen soll Ersatz für ein Steuerzeichen sein?

          Was kann ich denn dafür, dass ich das Zeichen x82 in meinem Broser sehen kann. Auf ungezählten Seiten, die mir einer falschen Zeichenkodierung rausgeschickt werden....

          Hotti

          1. @@hotti:

            nuqneH

            Was kann ich denn dafür, dass ich das Zeichen x82 in meinem Broser sehen kann. Auf ungezählten Seiten, die mir einer falschen Zeichenkodierung rausgeschickt werden....

            Vermutlich verwendet dein Browser Windows-1252, auch wenn ISO 8859-1 angegeben ist?

            Qapla'

            --
            Volumen einer Pizza mit Radius z und Dicke a: pi z z a
            1. hi,

              Vermutlich verwendet dein Browser Windows-1252, auch wenn ISO 8859-1 angegeben ist?

              Auch wenn ISO-8859-1 angegeben ist, zeigt mein Browser das Zeichen x82 als Komma.

              Hotti

              1. Hallo,

                Vermutlich verwendet dein Browser Windows-1252, auch wenn ISO 8859-1 angegeben ist?

                vermutlich.

                Auch wenn ISO-8859-1 angegeben ist, zeigt mein Browser das Zeichen x82 als Komma.

                Nein, was du siehst, ist kein Komma, sondern ein "einfaches Anführungszeichen unten" nach Windows-1252. In Unicode ist das entsprechende Zeichen U+201A.

                Ciao,
                 Martin

                --
                Ein Patriot ist jemand, der bereit ist, sein Land gegen seine Regierung zu verteidigen.
                1. hi,

                  Auch wenn ISO-8859-1 angegeben ist, zeigt mein Browser das Zeichen x82 als Komma.

                  Nein, was du siehst, ist kein Komma, sondern ein "einfaches Anführungszeichen unten" nach Windows-1252. In Unicode ist das entsprechende Zeichen U+201A.

                  Ok, das hätten wir geklärt. Ich möchte nun das, was ich sehe, den anderen zeigen, das Zeichen x82 darf ich nicht verwenden, soll ich ne Grafik machen?

                  Hotti

                  1. Hallo,

                    In Unicode ist das entsprechende Zeichen U+201A.
                    Ok, das hätten wir geklärt. Ich möchte nun das, was ich sehe, den anderen zeigen, das Zeichen x82 darf ich nicht verwenden, soll ich ne Grafik machen?

                    nein, du sollst das Zeichen U+201A notieren. Sagte ich doch schon. Und Gunnar auch.

                    Ciao,
                     Martin

                    --
                    Man soll den Tag nicht vor dem Abend loben.
                    Und den Mann nicht vor dem Morgen.
                      (alte Volksweisheit)
                    1. Mahlzeit,

                      nein, du sollst das Zeichen U+201A notieren. Sagte ich doch schon. Und Gunnar auch.

                      Das kann ich mit meinem Gewissen nicht vereinbaren. Das hieße ja, ich würde behaupten, dass der Browser ein x201A ausgibt, wenn er ein x82 kriegt und das ist mit Sicherheit nicht richtig.

                      Hotti

                      1. Hallo,

                        nein, du sollst das Zeichen U+201A notieren. Sagte ich doch schon. Und Gunnar auch.
                        Das kann ich mit meinem Gewissen nicht vereinbaren. Das hieße ja, ich würde behaupten, dass der Browser ein x201A ausgibt, wenn er ein x82 kriegt und das ist mit Sicherheit nicht richtig.

                        doch, das ist ganz bestimmt richtig. HTML basiert grundsätzlich auf Unicode (merke: Unicode, nicht UTF-8!). Damit ist es naheliegend, wenn nicht gar zwangsläufig, dass ein Browser alle HTML-Inhalte (vermutlich sogar *alle* Textinhalte, auch JS oder CSS), die er bekommt, intern in Unicode vorhält.

                        Es passiert also browserintern genau das, was du nicht glauben magst:
                         * Browser erhält in den Eingabedaten für ein ISO-8859-x-codiertes Dokument ein 0x82
                         * Browser stellt fest, dass 0x82 in ISO-8859-x nicht definiert ist, fällt
                           also ersatzweise auf Windows-1252 zurück
                         * In der Umschlüsselungstabelle für Windows-1252 steht, dass 0x82 dem
                           Unicode-Zeichen U+201A entspricht
                         * Browser speichert intern das Zeichen U+201A.

                        Warum hast du dann Skrupel, das ebenso zu machen?

                        So long,
                         Martin

                        --
                        Die letzten Worte des stotternden Beifahrers:
                        Frei... frei... frei... freilich kommt da was!!
                        1. hi,

                          doch, das ist ganz bestimmt richtig. HTML basiert grundsätzlich auf Unicode (merke: Unicode, nicht UTF-8!). Damit ist es naheliegend, wenn nicht gar zwangsläufig, dass ein Browser alle HTML-Inhalte (vermutlich sogar *alle* Textinhalte, auch JS oder CSS), die er bekommt, intern in Unicode vorhält.

                          Hmm, interessant. Glaube ich aber nicht. Meine Interpretation sieht entsprechend anders aus:

                          Der Browser wurde mit einem ISO-Header angewiesen, jedes Zeichen als eine Folge von 8 Bit zu betrachten. Nun kriegt er eine Bitfolge mit 24 Bit: E2.82.AC

                          Der Browser 'denkt' aufgrund des Headers, dass das drei einzelne Zeichen sind und stellt die dar als drei Zeichen xE2, x82 und AC. Genauso siehts nämlich aus, beim Euro sehe ich drei Zeichen.

                          * In der Umschlüsselungstabelle für Windows-1252 steht, dass 0x82 dem
                             Unicode-Zeichen U+201A entspricht

                          CP 1252 geht bis 255, also FF (8 Bit).

                          * Browser speichert intern das Zeichen U+201A.

                          Warum sollte ein Browser das tun?

                          Warum hast du dann Skrupel, das ebenso zu machen?

                          Warum sollte ich son Blödsinn nachmachen ;-)

                          Hotti

                          1. @@hotti:

                            nuqneH

                            Warum sollte ich son Blödsinn nachmachen ;-)

                            Der Blödsinn, den du machst, ist Webseiten über Zeichencodierungen und Zeichensätze zu verfassen, ohne beides hinreichend verstanden zu haben.

                            Qapla'

                            --
                            Volumen einer Pizza mit Radius z und Dicke a: pi z z a
                      2. Hi!

                        nein, du sollst das Zeichen U+201A notieren. Sagte ich doch schon. Und Gunnar auch.
                        Das kann ich mit meinem Gewissen nicht vereinbaren. Das hieße ja, ich würde behaupten, dass der Browser ein x201A ausgibt, wenn er ein x82 kriegt und das ist mit Sicherheit nicht richtig.

                        Dein Gewissen hat sich bisher auch nicht gemeldet, wenn ein Browser einen Bytestrom aus der angegebenen Kodierung in sein internes Unicode-Format umgesetzt hat. Alles was ankommt wird nach Unicode umgerechnet, sonst könnten solche Dinge wie NCRs oder Entity-Referenzen, die für Zeichen stehen, die nicht in der angegebenen Kodierung darstellbar sind, nicht eingefügt werden.

                        Lo!

                        1. hi,

                          Dein Gewissen hat sich bisher auch nicht gemeldet, wenn ein Browser einen Bytestrom aus der angegebenen Kodierung in sein internes Unicode-Format umgesetzt hat. Alles was ankommt wird nach Unicode umgerechnet, sonst könnten solche Dinge wie NCRs oder Entity-Referenzen, die für Zeichen stehen, die nicht in der angegebenen Kodierung darstellbar sind, nicht eingefügt werden.

                          Gewissenhaft habe ich im Laborversuch meinen Browser einmal einen ISO-8859-1-Header (1) und ein andermal einen UTF-8-Header (2) gegeben und eine Bitfolge E282AC hinterhergeschickt. Hier ist das Ergebnis:

                          (1) Der Browser zeigt 3 Zeichen
                          (2) Der Browser zeigt das Eurozeichen.

                          Aber nun kommt Versuch (3): UTF-8-Header und nur die Bitfolge x82, Ergebnis: Der Browser zeigt nur ein Zeichen und das sieht genauso aus wie das Zeichen, was er bei (1) als zweites Zeichen ausgegeben hat.

                          Hotti

                          1. Hallo,

                            Gewissenhaft habe ich im Laborversuch meinen Browser einmal einen ISO-8859-1-Header (1) und ein andermal einen UTF-8-Header (2) gegeben und eine Bitfolge E282AC hinterhergeschickt. Hier ist das Ergebnis:
                            (1) Der Browser zeigt 3 Zeichen
                            (2) Der Browser zeigt das Eurozeichen.

                            jedes andere Ergebnis hätte mich jetzt auch stutzig gemacht.

                            Aber nun kommt Versuch (3): UTF-8-Header und nur die Bitfolge x82, Ergebnis: Der Browser zeigt nur ein Zeichen und das sieht genauso aus wie das Zeichen, was er bei (1) als zweites Zeichen ausgegeben hat.

                            Welcher Browser? UTF-8 ist so gebaut, dass ein Byte im Bereich 0x80..BF nur als zweites (drittes, viertes) Byte einer Mehrbyte-Sequenz auftreten kann. Verabreichst du nun ein 0x82, ohne dass ein Byte 0xC0 oder höher voranging, lässt sich das nicht nach UTF-8 decodieren.
                            Korrekterweise sollte ein Browser hier das fehlerhafte Byte ignorieren. Dass dein Browser hier anfängt zu raten, überrascht mich.

                            Ciao,
                             Martin

                            --
                            Ein Snob ist ein Mensch, der sich auf ein Stachelschwein setzt, ohne eine Miene zu verziehen - nur weil ihm jemand gesagt hat, das sei ein Designersessel.
                            1. Merħba!

                              Welcher Browser? UTF-8 ist so gebaut, dass ein Byte im Bereich 0x80..BF nur als zweites (drittes, viertes) Byte einer Mehrbyte-Sequenz auftreten kann. Verabreichst du nun ein 0x82, ohne dass ein Byte 0xC0 oder höher voranging, lässt sich das nicht nach UTF-8 decodieren.
                              Korrekterweise sollte ein Browser hier das fehlerhafte Byte ignorieren. Dass dein Browser hier anfängt zu raten, überrascht mich.

                              Ignorieren? Ich würde hier U+FFFD � REPLACEMENT CHARACTER erwarten – den sieht man ja auch immer, wenn ISO-Umlaute in angeblichen UTF-8-Dokumenten stehen.

                              Viele Grüße vom Længlich

                              --
                              Mein aktueller Gruß ist:
                              Maltesisch
                              1. Hallo,

                                Korrekterweise sollte ein Browser hier das fehlerhafte Byte ignorieren. Dass dein Browser hier anfängt zu raten, überrascht mich.
                                Ignorieren? Ich würde hier U+FFFD ? REPLACEMENT CHARACTER erwarten

                                stimmt eigentlich auch wieder ... :-)

                                Ciao,
                                 Martin

                                --
                                Zwischen Leber und Milz
                                passt immer noch'n Pils.
                      3. @@hotti:

                        nuqneH

                        Das kann ich mit meinem Gewissen nicht vereinbaren.

                        Eher mit deinem Verständnis nicht. Update! Dann klappt’s auch mit dem Gewissen.

                        Das hieße ja, ich würde behaupten, dass der Browser ein x201A ausgibt, wenn er ein x82 kriegt und das ist mit Sicherheit nicht richtig.

                        Es ist mit Sicherheit nicht richtig, dass ein Browser ein x82 bei einem ISO-8859-x-codiertem Dokument kriegt. Wenn doch, hat der Seitenautor (oder der Serveradmin) geschlampt.

                        Der Browser hat dann zwei Möglichkeiten:
                        (1) Er verweigert die Darstellung des fehlerhaften Dokuments.
                        (2) Er errät, dass der Seitenautor mit x82 das Zeichen meinte, das in Windows-1252 an der Stelle x82 ist, also das Zeichen U+201A.
                        Mit „Don’t break the web!“ im Hinterkopf, wie sollte sich ein Browser wohl verhalten?

                        Qapla'

                        --
                        Volumen einer Pizza mit Radius z und Dicke a: pi z z a
                        1. hi,

                          Es ist mit Sicherheit nicht richtig, dass ein Browser ein x82 bei einem ISO-8859-x-codiertem Dokument kriegt. Wenn doch, hat der Seitenautor (oder der Serveradmin) geschlampt.

                          Wenn ein Seitenautor es schafft, die Bitfolge E282AC aus einem ISO-8859-x-codiertem Dokument nach STDOUT zu bringen, ist er ein Zauberer.

                          Hotti

                          1. @@hotti:

                            nuqneH

                            Es ist mit Sicherheit nicht richtig, dass ein Browser ein x82 bei einem ISO-8859-x-codiertem Dokument kriegt. Wenn doch, hat der Seitenautor (oder der Serveradmin) geschlampt.

                            Wenn ein Seitenautor es schafft, die Bitfolge E282AC aus einem ISO-8859-x-codiertem Dokument nach STDOUT zu bringen, ist er ein Zauberer.

                            OK, gemeint war: bei einem als ISO-8859-x-codiert deklariertem Dokument

                            Qapla'

                            --
                            Volumen einer Pizza mit Radius z und Dicke a: pi z z a
                            1. @@hotti:

                              nuqneH

                              Es ist mit Sicherheit nicht richtig, dass ein Browser ein x82 bei einem ISO-8859-x-codiertem Dokument kriegt. Wenn doch, hat der Seitenautor (oder der Serveradmin) geschlampt.

                              Wenn ein Seitenautor es schafft, die Bitfolge E282AC aus einem ISO-8859-x-codiertem Dokument nach STDOUT zu bringen, ist er ein Zauberer.

                              OK, gemeint war: bei einem als ISO-8859-x-codiert deklariertem Dokument

                              Da hast aber Schwein gehabt, jetzt ;-)

                              Hotti

                              1. @@hotti:

                                nuqneH

                                Es ist mit Sicherheit nicht richtig, dass ein Browser ein x82 bei einem ISO-8859-x-codiertem Dokument kriegt. Wenn doch, hat der Seitenautor (oder der Serveradmin) geschlampt.

                                Wenn ein Seitenautor es schafft, die Bitfolge E282AC aus einem ISO-8859-x-codiertem Dokument nach STDOUT zu bringen, ist er ein Zauberer.

                                OK, gemeint war: bei einem als ISO-8859-x-codiert deklariertem Dokument

                                Da hast aber Schwein gehabt, jetzt ;-)

                                Wobei x82 in einem ISO-8859-x-codiertem Dokument natürlich erlaubt ist, wie dedlfix sagte. Es steht aber nicht für U+201A, sondern für U+0082 (Steuerzeichen BREAK PERMITTED HERE).

                                x82 (U+0082) ist aber nicht in einem ISO-8859-x-codiertem _HTML_-Dokument erlaubt, wie MudGuard sagte.

                                Qapla'

                                --
                                Volumen einer Pizza mit Radius z und Dicke a: pi z z a
                          2. Hi!

                            Wenn ein Seitenautor es schafft, die Bitfolge E282AC aus einem ISO-8859-x-codiertem Dokument nach STDOUT zu bringen, ist er ein Zauberer.

                            Warum sollte man das nicht hinbekommen? In ISO-8859-1 ist jede mögliche der 256 Positionen mit einem Zeichen belegt, manche sind nur nicht sichtbar. Es ist also jeglicher Bytewert erlaubt und von der Abfolge der Bytewerte gibt es keine Einschränkungen.

                            Lo!

                            1. Hallo dedlfix,

                              ... Es ist also jeglicher Bytewert erlaubt und von der Abfolge der Bytewerte gibt es keine Einschränkungen.

                              die gibt es schon, aber dann ist der Validator nicht mehr zuständig, sondern der Duden.

                              Gruß, Jürgen

                          3. Wenn ein Seitenautor es schafft, die Bitfolge E282AC aus einem ISO-8859-x-codiertem Dokument nach STDOUT zu bringen, ist er ein Zauberer.

                            Wieso?

                            #!/usr/bin/perl -w  
                            use strict;  
                            use CGI;  
                            print CGI::header(-type => 'text/html');  
                            print CGI::start_html(), CGI::a({-href => "?test=%E2%82%AC"} , 'test');  
                              
                            if(CGI::param('test') ) {  
                            print '<br>Ausgabe nach STDOUT: ',  CGI::param('test') ;  
                            }  
                            print CGI::end_html();  
                            
                            

                            Im Code kommt genau die Bytefolge an.

                            Struppi.

                            1. Wenn ein Seitenautor es schafft, die Bitfolge E282AC aus einem ISO-8859-x-codiertem Dokument nach STDOUT zu bringen, ist er ein Zauberer.

                              Wieso?
                              [code lang=perl]#!/usr/bin/perl -w
                              use strict;
                              use CGI;
                              print CGI::header(-type => 'text/html');

                              Und wo ist Deine Charset-Angabe? Richtig! Du hast keine angegeben, Dein Header sieht so aus:

                              Content-Type: text/html; charset=ISO-8859-1

                              und damit wird der Browser angewiesen, drei Zeichen mit je 8 Bit auszugeben.

                              Ein
                              print CGI::header(-type => 'text/html; charset=utf-8');
                              zeigt mir ein Eurozeichen.

                              Hotti

                              1. Wenn ein Seitenautor es schafft, die Bitfolge E282AC aus einem ISO-8859-x-codiertem Dokument nach STDOUT zu bringen, ist er ein Zauberer.

                                Wieso?
                                [code lang=perl]#!/usr/bin/perl -w
                                use strict;
                                use CGI;
                                print CGI::header(-type => 'text/html');

                                Und wo ist Deine Charset-Angabe? Richtig! Du hast keine angegeben, Dein Header sieht so aus:

                                Ich weiß.

                                Content-Type: text/html; charset=ISO-8859-1

                                Das war exakt deine Frage.

                                und damit wird der Browser angewiesen, drei Zeichen mit je 8 Bit auszugeben.

                                Genau.

                                Ein
                                print CGI::header(-type => 'text/html; charset=utf-8');
                                zeigt mir ein Eurozeichen.

                                Das war ncith deine Frage, wenn du dem Browser sagst er soll utf-8 darstellen, macht er aus den Zeichen ein Eurozeichen, genau so soll es sein. Aber dann verstehe ich deine Fragestellung nicht mehr. Worüber wunderst du dich und was ist die zauberei?

                                Struppi.

                                1. hi,

                                  Das war ncith deine Frage, wenn du dem Browser sagst er soll utf-8 darstellen, macht er aus den Zeichen ein Eurozeichen, genau so soll es sein. Aber dann verstehe ich deine Fragestellung nicht mehr.

                                  There is a hole in the bucket ;-)

                                  Worüber wunderst du dich und was ist die zauberei?

                                  Es würde mich wundern, wenn ein Publisher das Eurozeichen U+20AC mit dem Vector E2.82.AC aus einer Datei holen könnte, in der die Zeichen ISO-8859-x codiert sind.

                                  Schönes Script, danke Struppi! Es zeigt genau das, worüber ich in meinem Artikel schreibe.

                                  Hotti

                                  1. Es würde mich wundern, wenn ein Publisher das Eurozeichen U+20AC mit dem Vector E2.82.AC aus einer Datei holen könnte, in der die Zeichen ISO-8859-x codiert sind.

                                    Ich hab' ja schon öfters betont, dass ich kein Experte auf dem Gebiet bin.

                                    Aber eine Datei kann doch nicht kodiert sein?
                                    Kodiert ist nur die Ausgabe bzw. das was du siehst, also die Darstellung. Wenn du eine Datei mit der Bytefolge hast, dann wird diese so dargestellt, wie dein Betrachter das sieht. wenn du im sagst dass diese drei bytes utf-8 sind, dann ist es das Eurozeichen.

                                    Struppi.

                                    1. Es würde mich wundern, wenn ein Publisher das Eurozeichen U+20AC mit dem Vector E2.82.AC aus einer Datei holen könnte, in der die Zeichen ISO-8859-x codiert sind.

                                      Ich hab' ja schon öfters betont, dass ich kein Experte auf dem Gebiet bin.

                                      Aber eine Datei kann doch nicht kodiert sein?

                                      Da hast Du natürlich recht. Wenn Du die Zeichenfolge € in eine 'beliebige' Datei schreibst, gibt das E282AC beim Auslesen und wenn dem Browser gesagt wird, er soll das in UTF-8 darstellen, zeigt er den €.

                                      Der € von einer XP-Tastatur und CP 1552 ist jedoch x80 und erzeugt in einer Datei auch diese Bitfolge (das meinte ich).

                                      Hotti

                                      1. Der € von einer XP-Tastatur und CP 1552 ist jedoch x80 und erzeugt in einer Datei auch diese Bitfolge (das meinte ich).

                                        Nicht wenn du dem Editor sagst, dass die Datei anders kodiert ist. Zzumindest nicht in Notepad++. dort wird aus den Tatsendruck die utf-8 Bytefolge, so wie es sein soll.

                                        Struppi.

                                    2. Hi!

                                      Aber eine Datei kann doch nicht kodiert sein?

                                      Der Inhalt einer (Text-)Datei ist eine Bytefolge. Die hat jemand erstellt - wenn er dabei alles richtig gemacht hat - indem er Zeichen einer Kodierungsvorschrift gemäß als Bytes kodiert hat.

                                      Kodiert ist nur die Ausgabe bzw. das was du siehst, also die Darstellung. Wenn du eine Datei mit der Bytefolge hast, dann wird diese so dargestellt, wie dein Betrachter das sieht. wenn du im sagst dass diese drei bytes utf-8 sind, dann ist es das Eurozeichen.

                                      Das ist die Empfängerseite, und die dekodiert. Wenn sie nach der Vorschrift des Erstellers vorgeht, entsteht auch wieder der gleiche Sinn.
                                      Man dekodiert/interpretiert einen Dateiinhalt gemäß einer Kodiervorschrift. ("Kodiervorschrift" steht hier für eine Vorschrift die den Prozess in beide Richtungen beschreibt).

                                      Die Darstellung kommt erst in einem späteren Schritt. Beim Empfang geht es erst einmal darum, den Inhalt richtig zu interpretieren. Also dass aus der Bytefolge glesen wird, sie stehe für die Zeichen X, Y und Z. Da ein Rechner allerdings nicht die Zeichen nach ihrem Sinn speichern kann, wird er sie direkt von der Kodierung der Datei in eine interne Kodierung umrechnen. Das wird im Falle eines Browser etwas Unicode-basierendes sein, alles andere wäre nicht besonders nützlich. Wie auch immer, das was man im Browser unter Ansicht->(Zeichen)kodierung umstellen kann, hat etwas mit der Interpretation zu tun, damit die Bytefolge korrekt in die interne Darstellung umgerechnet werden kann.

                                      Irgendwann kommt nun der Prozess, dass die (irgendwie intern kodierten) Zeichen in eine Anzeige gebracht werden sollen. Jetzt erst werden sie dargestellt, aber das ist eine andere Baustelle. Es muss jedenfalls schon beim Lesen/Interpretieren der "Sinn" klar sein.

                                      Lo!

                                      1. Aber eine Datei kann doch nicht kodiert sein?

                                        Der Inhalt einer (Text-)Datei ist eine Bytefolge. Die hat jemand erstellt - wenn er dabei alles richtig gemacht hat - indem er Zeichen einer Kodierungsvorschrift gemäß als Bytes kodiert hat.

                                        Also meiner Meinung nach, spielt die Kodierung beim erstellen einer Datei null eine Rolle. Ein Byte ist einfach eine Zahl von 0 bis 255.

                                        Man dekodiert/interpretiert einen Dateiinhalt gemäß einer Kodiervorschrift. ("Kodiervorschrift" steht hier für eine Vorschrift die den Prozess in beide Richtungen beschreibt).

                                        Also für mich sind Dateien Folgen von Bytes mit keinerlei Kodierung. Diese kommt erst bei der Darstellung zum tragen.

                                        Die Darstellung kommt erst in einem späteren Schritt. Beim Empfang geht es erst einmal darum, den Inhalt richtig zu interpretieren. Also dass aus der Bytefolge glesen wird, sie stehe für die Zeichen X, Y und Z.

                                        Das ist meines erachtens falsch. Eine Bytefolge steht für kein Zeichen, d.h. Zeichen wird es erst nach der Kodierung und Darstellung.

                                        Das wird im Falle eines Browser etwas Unicode-basierendes sein, alles andere wäre nicht besonders nützlich. Wie auch immer, das was man im Browser unter Ansicht->(Zeichen)kodierung umstellen kann, hat etwas mit der Interpretation zu tun, damit die Bytefolge korrekt in die interne Darstellung umgerechnet werden kann.

                                        Nach dem Satz glaube ich wir meinen doch das gleiche, drücken es nur anders aus. Das Programm, dass eine Bytefolge darstellen muss braucht eine Dekodierungsvorschrift.

                                        Irgendwann kommt nun der Prozess, dass die (irgendwie intern kodierten) Zeichen in eine Anzeige gebracht werden sollen. Jetzt erst werden sie dargestellt, aber das ist eine andere Baustelle. Es muss jedenfalls schon beim Lesen/Interpretieren der "Sinn" klar sein.

                                        Trotzdem ist das falsch. Wenn ich in meinem Editor eine Datei öffne gibt es erstmal keine Kodierung, sie spielt also beim lesen keine Rolle. Sie spielt erst eine Rolle, wenn die Zeichen interpretiert werden sollen und das ist für mich darstellen.

                                        Struppi.

                                        1. Trotzdem ist das falsch. Wenn ich in meinem Editor eine Datei öffne gibt es erstmal keine Kodierung, sie spielt also beim lesen keine Rolle. Sie spielt erst eine Rolle, wenn die Zeichen interpretiert werden sollen und das ist für mich darstellen.

                                          Es gibt so viel eine Codierung wie bei einer existierenden umfassenden Datei.
                                          Die Kodierung wird nämlich durch Heuristik erfahren. Manche Programme merken dann spätestens beim ersten Speichern die entschiedene Kodierung in einer internen Datenbank.
                                          HTML und HTTP bilden insofern einen Unterschied, als dem Browser beim Raten einen Vorschlag gemacht werden kann.

                                          mfg Beat

                                          --
                                          ><o(((°>           ><o(((°>
                                             <°)))o><                     ><o(((°>o
                                          Der Valigator leibt diese Fische
                                          1. Trotzdem ist das falsch. Wenn ich in meinem Editor eine Datei öffne gibt es erstmal keine Kodierung, sie spielt also beim lesen keine Rolle. Sie spielt erst eine Rolle, wenn die Zeichen interpretiert werden sollen und das ist für mich darstellen.

                                            Es gibt so viel eine Codierung wie bei einer existierenden umfassenden Datei.

                                            Trotzallem sind die Daten in der Datei, immer nur eine Folge von Bytes. Also die Zahlen von 0-255, da spielt die Kodierung keine Rolle.

                                            Die Kodierung wird nämlich durch Heuristik erfahren. Manche Programme merken dann spätestens beim ersten Speichern die entschiedene Kodierung in einer internen Datenbank.

                                            Das verstehe ich nicht, was du damit sagen willst. Mir ist klar, dass ein Zeichen erst kodiert werden muss, bevor es dargestellt werden kann. Das ist ja was ich geschrieben hatte. Erst die Darstellung macht es zu einem Zeichen. Vorher ist es nur ein oder mehrere Zahlencode. Wie die einzelnen Programme das handhaben ist natürlich unterscheidlich.

                                            HTML und HTTP bilden insofern einen Unterschied, als dem Browser beim Raten einen Vorschlag gemacht werden kann.

                                            Das trifft wohl für etliche Formate zu, auch für Textdateien gibt es ja z.b. die BOM als Orientierung.

                                            Struppi.

                                            1. Trotzdem ist das falsch. Wenn ich in meinem Editor eine Datei öffne gibt es erstmal keine Kodierung, sie spielt also beim lesen keine Rolle. Sie spielt erst eine Rolle, wenn die Zeichen interpretiert werden sollen und das ist für mich darstellen.

                                              Es gibt so viel eine Codierung wie bei einer existierenden umfassenden Datei.

                                              Trotzallem sind die Daten in der Datei, immer nur eine Folge von Bytes. Also die Zahlen von 0-255, da spielt die Kodierung keine Rolle.

                                              Aber sie spielt beim Lesen eine Rolle und ein Encoding wird immer angewendet, sobald ein type=text festgestellt wird.
                                              Viele Editoren speichern ja extra Dateien als Metadaten zu den Files.
                                              Während du Recht hast, dass eine Datei kein Encoding hat, und ein solches eher via charset=Kabbala von I/O zu I/O geschleift wird, ist eben die Notwendigkeit einer solchen Angabe so gross, dass sich jedes bessere Programm zu helfen sucht.

                                              PS.
                                              Ich bin gerade dabei, meinem CMS ein Extra-Tool für die Konversion des Charsets mitzugeben.
                                              Ich habe hier auch verschiedene Szenarien zur Verfügung.
                                              weil aber Encode::Guess nicht zwischen verschiedenen IDO-typen unterscheiden kann (fast jeder ISO-typ enthält definierte bytes auf allen 255 Positionen), kann ich guess nicht verwenden.
                                              Ich muss die Kabbala bemühen. Das ist, ich muss das Encoding als Quelle anwenden, welches im CMS als Encoding angegeben wurde.

                                              Zwei Konversionen sind vorgesehen:
                                              Upgrade:
                                              von einem ISO-Typ zu UTF-8.
                                              Wie prüfe ich, dass der Input wirklich in ISO-xy vorliegt?
                                              Ich darf ganz einfach dem CMS-Eintrag glauben. Jedes Byte erzeugt einen legalen Unicode-Punkt.

                                              Downgrade: (der Nonsens nur wegen Perl 5.6)
                                              Ich akzeptiere den Input als UTF-8 und encode als ISO.
                                              Danach teste ich, ob FFFE vorhanden ist (Hinweis auf destruktive Konversion.)
                                              (User entscheidet, ob in dem Fall die Konversion auch gespeichert wird.
                                              Ursache war möglicherweise ein Missmatch des decode Parts)

                                              mfg Beat

                                              --
                                              ><o(((°>           ><o(((°>
                                                 <°)))o><                     ><o(((°>o
                                              Der Valigator leibt diese Fische
                                              1. Hi!

                                                Wie prüfe ich, dass der Input wirklich in ISO-xy vorliegt?
                                                Ich darf ganz einfach dem CMS-Eintrag glauben. Jedes Byte erzeugt einen legalen Unicode-Punkt.

                                                Ja, aber eventuell je nach vorher verwendeter ISO-8859-x-Kodierung einen anderen.

                                                Downgrade: (der Nonsens nur wegen Perl 5.6)
                                                Ich akzeptiere den Input als UTF-8 und encode als ISO.
                                                Danach teste ich, ob FFFE vorhanden ist (Hinweis auf destruktive Konversion.)

                                                Ist das was Perl-spezifisches? FFFE steht für die "ganz normalen" Zeichen ÿ und þ. In ISO-8859-x gibt es kein Zeichen für "kann nicht kodiert werden". Die mir bekannten Konvertierer nehmen dann das normale Fragezeichen.

                                                Lo!

                                                1. Downgrade: (der Nonsens nur wegen Perl 5.6)
                                                  Ich akzeptiere den Input als UTF-8 und encode als ISO.
                                                  Danach teste ich, ob FFFE vorhanden ist (Hinweis auf destruktive Konversion.)

                                                  Ist das was Perl-spezifisches? FFFE steht für die "ganz normalen" Zeichen ÿ und þ. In ISO-8859-x gibt es kein Zeichen für "kann nicht kodiert werden". Die mir bekannten Konvertierer nehmen dann das normale Fragezeichen.

                                                  Jetzt hast du mich erwischt.
                                                  Das war jetzt Fehlerhaft. Der indizierende Codepunkt ist x{FFFD}
                                                  Ich kann das natürlich nur im internen Format (als Perl String) und nicht im encoded Format als Octetts testen.
                                                  Was würde auch
                                                     encode('iso-8859-1', "x{FFFD}",0 )
                                                  ergeben?
                                                  "If CHECK is 0, (en|de)code will put a substitution character in place of a malformed character. When you encode, <subchar> will be used. When you decode the code point 0xFFFD is used. If the data is supposed to be UTF-8, an optional lexical warning (category utf8) is given. "

                                                  Heraus kommt das "?" 0x3f.
                                                  Das ist nun aber nicht geeignet zum testen.

                                                  Die andere Möglichkeit
                                                     encode('iso-8859-1', "x{FFFD}",1 )
                                                  "If CHECK is 1, methods will die on error immediately with an error message. Therefore, when CHECK is set to 1, you should trap the error with eval{} unless you really want to let it die. "

                                                  mfg Beat

                                                  --
                                                  ><o(((°>           ><o(((°>
                                                     <°)))o><                     ><o(((°>o
                                                  Der Valigator leibt diese Fische
                                                  1. Hi!

                                                    Was würde auch
                                                       encode('iso-8859-1', "x{FFFD}",0 )
                                                    ergeben?
                                                    "If CHECK is 0, (en|de)code will put a substitution character in place of a malformed character. [...]

                                                    Heraus kommt das "?" 0x3f.
                                                    Das ist nun aber nicht geeignet zum testen.

                                                    Da hab ich noch ein Beispiel. Das ist zwar etwas konstruiert, zeigt aber, dass es eine Möglichkeit gibt, bei der man Verstand braucht, um den Text richtig zu interpretieren.

                                                    "Ich will Umlaute haben, stattdessen sehe ich immer nur ä, ö und ü."

                                                    Stell dir vor, der Satz sei ISO-8859-1-kodiert. Beachte außerdem, dass er nur ASCII-Zeichen enthält, außer den drei verkorksten Umlauten. Du kannst ihn als ISO-8859-1 interpretieren und erhältst genau die Bedeutung, die der Autor haben wollte. Du kannst ihn aber auch als UTF-8 interpretieren, dann siehst du die Umlaute und fragst dich, was der Typ will - sind doch welche da.

                                                    Die andere Möglichkeit
                                                       encode('iso-8859-1', "x{FFFD}",1 )
                                                    "If CHECK is 1, methods will die on error immediately with an error message. [...]

                                                    Zumindest weißt du, dass keine gültige UTF-8-Sequenz vorliegt. Eine andere Aussage kannst du nicht treffen - ohne Sinn-Interpreter.

                                                    Wenn es in den zu prüfenden Texten nicht um (fehlerhafte) Zeichenkodierungen geht, und du die Anzahl der vorkommenden Kodierungen einschränken kannst, dann kann die die Rate-Methode einen groben Anhaltspunkt zur Bestimmung bieten. Aber mehr nicht. Denn wie du selbst schon festgestellt hast, lässt sich bei der ISO-8859-Familie nicht ermitteln, welche es nun sein soll. Die Rate-Methode ist also nur bei UTF-8 versus ein Verteter von ISO-8859 und Verwandten (à la Windows-1252) mit einigermaßen Treffsicherheit anwendbar. Eventuell können noch weitere Mehrbyte-Kodierungen ins Spiel kommen. Solange man Kriterien findet, die besagen, dass die Wahrscheinlichkeit eines sinnvollen Textes beim Auftreten einer bestimmten Bytekombination gering und die Fehlerquote nicht allzu hoch ist, und man somit alle außer einer Kodierung ausschließen kann, hat man vermutlich diese übrige Kodierung vorliegen.

                                                    Fazit: Alles Mist, wenn man die Originalkodierung nicht kennt.

                                                    Lo!

                                        2. Hi!

                                          Also meiner Meinung nach, spielt die Kodierung beim erstellen einer Datei null eine Rolle. Ein Byte ist einfach eine Zahl von 0 bis 255.

                                          Warum soll die Kodierung keine Rolle spielen? Irgendwo muss doch festgelegt sein, wie ein Zeichen in Bytes repräsentiert werden soll. Ich kann doch nicht einfach irgendwelche beliebigen Bytes nehmen, wenn ich einen Text in Dateiform ablegen will. Wenn ich also ein € in die Datei schreiben will, muss ich das gemäß ISO-8859-15 als A4, gemäß Windows-1252 als 80 und gemäß UTF-8 als E2 82 AC tun. Wie bezeichntest du sonst den Vorgang, um von einem Text zu den ihn verkörpernden Bytes zu gelangen?

                                          Man dekodiert/interpretiert einen Dateiinhalt gemäß einer Kodiervorschrift. ("Kodiervorschrift" steht hier für eine Vorschrift die den Prozess in beide Richtungen beschreibt).
                                          Also für mich sind Dateien Folgen von Bytes mit keinerlei Kodierung. Diese kommt erst bei der Darstellung zum tragen.

                                          Diese Folge von Bytes ist doch aber nicht willkürlich. Die Bytes repäsentieren Text, sie sind kodierter Text. Wenn ich sie sinnerhaltend weiterverarbeiten will - vielleicht zum späteren Ausgeben - muss ich die Kodierung (in umgekehrter Richtung) berücksichtigen, so dass wieder das Zeichen daraus wird, was beabsichtigt war. Da der Rechner jedoch nicht in Zeichen denkt, wird der Programmierer eine bestimmte Form der internen Repräsentation zu ihrer Verkörperung gewählt haben, eine Kodierung, die er zum Weiterverarbeiten als geeignet angesehen hat. Es sind zwar immer noch keine Zeichen geworden, aber immer noch Codes, die für diese Zeichen stehen.

                                          Willst du etwa den Sinn und die Bytefolge voneinander trennen? Das kannst du machen, wenn du ein Transportsystem bist und nur das Zeug von A nach B befördern sollst. Dann brauchst du den Sinn nicht zu kennen, aber das ist nicht unser Thema.

                                          Eine Bytefolge steht für kein Zeichen, d.h. Zeichen wird es erst nach der Kodierung und Darstellung.

                                          Warum nicht? Was soll denn der Wert der Bytes sonst repräsentieren?

                                          Nach dem Satz glaube ich wir meinen doch das gleiche, drücken es nur anders aus. Das Programm, dass eine Bytefolge darstellen muss braucht eine Dekodierungsvorschrift.

                                          Eben. Die Umkehrfunktion zur verwendeten Kodierung.

                                          Wenn ich in meinem Editor eine Datei öffne gibt es erstmal keine Kodierung, sie spielt also beim lesen keine Rolle. Sie spielt erst eine Rolle, wenn die Zeichen interpretiert werden sollen und das ist für mich darstellen.

                                          An dieser Stelle trennst du Dinge unnötig auf, scheint mir. Die allgemeine Betriebssystemfunktion zum Lesen aus Dateien liest natürlich Bytes ohne deren Sinn zu "hinterfragen". Das passiert aber einer Ebene, die unterhalb der betrachteten liegt. Der Editor, der den Bytestrom entgegennimmt, muss selbstverständlich die Datei dekodieren um sie in eine Form zu bringen, mit der er intern arbeiten kann. Er kann sie auch noch dreimal uninterpretiert im Speicher umlagern, aber das bringt uns als außenstehender Betrachter nicht weiter. Er muss jedenfalls schon für die interne Verarbeitung den Sinn der Zeichen kennen, und nicht erst dann, wenn er sie an die (Bildschirm-)Ausgaberoutine weitergibt. Wie soll er sonst Wortgrenzen oder Zeilen oder sowas erkennen?

                                          Lo!

                                          1. h1,

                                            An dieser Stelle trennst du Dinge unnötig auf, scheint mir.

                                            Scheint mir auch so. Ich denke, der Presentation Layer ist nicht nur die Ausgabe, sondern Ein- und Ausgabe. Also die Tastatur als wichtigstes Eingabegerät gehört bereits in die Präsentations-Ebene.

                                            Der Euro ist ein schönes Beispiel für Missverständnisse in Sachen Ein- und Ausgabe (und auch in Sachen Einnahmen und Ausgaben).

                                            Hotti

                                            1. An dieser Stelle trennst du Dinge unnötig auf, scheint mir.

                                              Scheint mir auch so.

                                              Du hast doch angefangen damit.

                                              Struppi.

                                          2. Also meiner Meinung nach, spielt die Kodierung beim erstellen einer Datei null eine Rolle. Ein Byte ist einfach eine Zahl von 0 bis 255.

                                            Warum soll die Kodierung keine Rolle spielen? Irgendwo muss doch festgelegt sein, wie ein Zeichen in Bytes repräsentiert werden soll.

                                            Genau, repräsentiert => dargestellt werden.

                                            Ich kann doch nicht einfach irgendwelche beliebigen Bytes nehmen, wenn ich einen Text in Dateiform ablegen will. Wenn ich also ein € in die Datei schreiben will, muss ich das gemäß ISO-8859-15 als A4, gemäß Windows-1252 als 80 und gemäß UTF-8 als E2 82 AC tun. Wie bezeichntest du sonst den Vorgang, um von einem Text zu den ihn verkörpernden Bytes zu gelangen?

                                            Konvertierung oder Dekodierung. Den Fehler den du machst, ist von einem Text auszugehen. Ein Text ist ja bereits eine kodierte Zeichenfolge, im einfachsten Fall ASCII. Ein Text ist aber nur ein Ausdruck für eine für Menschen lesbare Datei und die muss logischerweise kodiert bzw. dekodiert werden, da hast du Recht.

                                            Aber, um dein Beispiel fortzuführen, wenn ich die obige Datei mit meinem Editor einlese kann er versuchen zu erkennen in welcher Kodierung diese vorliegt, das wird aber bei dem Zeichen 80 schwer fallen. Im DOS Fenster ist es ein Ç in einem utf-8 HTML Dokument ein Fragezeichen. Die Datei enthält im Prinzip keinerlei Informationen über die Kodierung. Die ergibt sich erst aus dem Kontext, wie du es in deinem Artikel auch schriebst.

                                            Man dekodiert/interpretiert einen Dateiinhalt gemäß einer Kodiervorschrift. ("Kodiervorschrift" steht hier für eine Vorschrift die den Prozess in beide Richtungen beschreibt).
                                            Also für mich sind Dateien Folgen von Bytes mit keinerlei Kodierung. Diese kommt erst bei der Darstellung zum tragen.

                                            Diese Folge von Bytes ist doch aber nicht willkürlich. Die Bytes repäsentieren Text, sie sind kodierter Text. Wenn ich sie sinnerhaltend weiterverarbeiten will - vielleicht zum späteren Ausgeben - muss ich die Kodierung (in umgekehrter Richtung) berücksichtigen, so dass wieder das Zeichen daraus wird, was beabsichtigt war.

                                            genau: Die Darstellung, du  sprichst ja nur von Texten, es gibt aber auch z.b. Bilder, auch diese Dateien kannst du mit deinem Editor öffnen und bekommst je nach dem was der Editor macht eine laut piepsende Ausgabe. Es ist aber nicht erkennbar, dass es ein Bild ist.

                                            Willst du etwa den Sinn und die Bytefolge voneinander trennen?

                                            Natürlich, es spielt ja auch keine Rolle, du kanst auch jedes Textdokument in irgendeiner Kodierung darstellen lassen, siehst halt andere Zeichen. Obn es richtig ist, erkennt erst der Mensch der sie lesen muss.

                                            Eine Bytefolge steht für kein Zeichen, d.h. Zeichen wird es erst nach der Kodierung und Darstellung.

                                            Warum nicht? Was soll denn der Wert der Bytes sonst repräsentieren?

                                            Eine Zahl zwischen 0 und 255.

                                            Nach dem Satz glaube ich wir meinen doch das gleiche, drücken es nur anders aus. Das Programm, dass eine Bytefolge darstellen muss braucht eine Dekodierungsvorschrift.

                                            Eben. Die Umkehrfunktion zur verwendeten Kodierung.

                                            Die aber nicht notwendigerweise in der Datei ersichtlich ist.

                                            Wenn ich in meinem Editor eine Datei öffne gibt es erstmal keine Kodierung, sie spielt also beim lesen keine Rolle. Sie spielt erst eine Rolle, wenn die Zeichen interpretiert werden sollen und das ist für mich darstellen.

                                            An dieser Stelle trennst du Dinge unnötig auf, scheint mir. Die allgemeine Betriebssystemfunktion zum Lesen aus Dateien liest natürlich Bytes ohne deren Sinn zu "hinterfragen". Das passiert aber einer Ebene, die unterhalb der betrachteten liegt. Der Editor, der den Bytestrom entgegennimmt, muss selbstverständlich die Datei dekodieren um sie in eine Form zu bringen, mit der er intern arbeiten kann. Er kann sie auch noch dreimal uninterpretiert im Speicher umlagern, aber das bringt uns als außenstehender Betrachter nicht weiter. Er muss jedenfalls schon für die interne Verarbeitung den Sinn der Zeichen kennen, und nicht erst dann, wenn er sie an die (Bildschirm-)Ausgaberoutine weitergibt. Wie soll er sonst Wortgrenzen oder Zeilen oder sowas erkennen?

                                            Das tut er, weil entweder er weiß, das z.b. eine .txt Datei in diesem windows-1252 Kodierung vorliegt oder du musst es dem Editor explizit sagen.

                                            Schreib mal einen Text mit Umlauten in einem DOS Editor und schon merkst du, dass es dem Bytestrom an sich egal ist, du musst dem Editor sagen wie er zu dekodieren hat, damit die Darstellung dem entspricht was du erwartest.

                                            Struppi.

                                            1. Hi!

                                              Also meiner Meinung nach, spielt die Kodierung beim erstellen einer Datei null eine Rolle. Ein Byte ist einfach eine Zahl von 0 bis 255.
                                              Warum soll die Kodierung keine Rolle spielen? Irgendwo muss doch festgelegt sein, wie ein Zeichen in Bytes repräsentiert werden soll.
                                              Genau, repräsentiert => dargestellt werden.

                                              Darstellen kann man auf zwei Arten verstehen. Einmal im indirekten Sinne von "ein Stellvertreter/Repräsentant von etwas" (zum Beispiel Schauspieler) und einmal das Schreiben, Zeichen, Ausgeben auf einem Medium (Papier, Bildschirm).

                                              Ich habe hin und her überlegt, wie ich es am besten formuliere, weil es letztlich doch das gleiche ist. Ich meine beim indirekten Darstellen etwas, das man erst noch (mit gewissem Aufwand) interpretieren muss, um den Sinn zu verstehen und beim direkten Darstellen, etwas das man "nur lesen muss", weil man Lesen mittlerweile perfekt kann.

                                              Wenn du solche Sätze wie den folgenden schreibst, welches Darstellen soll man da nun annehmen, das indirekte wie bei repräsentieren oder das Zur-Anzeige-Bringen?

                                              Also für mich sind Dateien Folgen von Bytes mit keinerlei Kodierung. Diese kommt erst bei der Darstellung zum tragen.

                                              In der Reihenfolge "Datei -> Darstellung" lese ich das als Zur-Anzeige-Bringen. Du willst es aber als Repräsentieren verstanden wissen? Und wenn du dann auch noch weiter vorn im Thread die andere Bedeutung nimmst, ...

                                              das was du siehst, also die Darstellung

                                              ... ist man möglicherweise, so wie ich, beim Interpretieren erst mal auf dem Holzweg.

                                              Aber zurück zum Thema. Ich verstehe nicht, warum du dem Dateiinhalt eine Bedeutung absprechen willst, wenn du doch nicht nur Transporteur sondern Interpretierender bist.

                                              Aber, um dein Beispiel fortzuführen, wenn ich die obige [Text-]Datei mit meinem Editor einlese kann er versuchen zu erkennen in welcher Kodierung diese vorliegt, das wird aber bei dem Zeichen 80 schwer fallen. Im DOS Fenster ist es ein Ç in einem utf-8 HTML Dokument ein Fragezeichen. Die Datei enthält im Prinzip keinerlei Informationen über die Kodierung.

                                              Ich habe nicht gemeint, die Datei enthielte eine Information über ihre Kodierung sondern nur, dass sie mit Hilfe einer Kodierung(svorschrift) ihr Inhalt erstellt worden ist.

                                              Die ergibt sich erst aus dem Kontext, wie du es in deinem Artikel auch schriebst.

                                              Die Kodierung ergibt sich auch nicht, sie ist bereits da, weil sie beim Schreibvorgang verwendet wurde. Was hat eigentlich mein Artikel damit zu tun? Konkret: welche Stelle? Er ist ja nicht gerade kurz. Und eigentlich ignoriert er das Thema Kodierung, weil es einerseits zu komplex ist und andererseits damit das Verständnis seines eigentlichen Themas nicht einfacher wird.

                                              Man dekodiert/interpretiert einen Dateiinhalt gemäß einer Kodiervorschrift. ("Kodiervorschrift" steht hier für eine Vorschrift die den Prozess in beide Richtungen beschreibt).
                                              Also für mich sind Dateien Folgen von Bytes mit keinerlei Kodierung. Diese kommt erst bei der Darstellung zum tragen.

                                              "Mit keinerlei Kodierung" soll man so lesen, dass lediglich keine Information zur verwendeten Kodierung vorliegt? Und bei Darstellung ist Interpretation (sinnerhaltendes Lesen) gemeint, nicht das Zur-Anzeige-Bringen-Darstellen? Bei der Lesart könnte ich dem zustimmen.

                                              Diese Folge von Bytes ist doch aber nicht willkürlich. Die Bytes repäsentieren Text, sie sind kodierter Text. Wenn ich sie sinnerhaltend weiterverarbeiten will - vielleicht zum späteren Ausgeben - muss ich die Kodierung (in umgekehrter Richtung) berücksichtigen, so dass wieder das Zeichen daraus wird, was beabsichtigt war.
                                              genau: Die Darstellung, du  sprichst ja nur von Texten, es gibt aber auch z.b. Bilder, auch diese Dateien kannst du mit deinem Editor öffnen und bekommst je nach dem was der Editor macht eine laut piepsende Ausgabe. Es ist aber nicht erkennbar, dass es ein Bild ist.

                                              Bilder und andere Nicht-Text-Inhalte sind eigentlich nicht im Fokus meiner Argumentation. Aber ja, wenn ich einen Inhalt falsch interpretiere, kann ich ihn nicht sinnerhaltend wiedergeben / zur Anzeige bringen (darstellen).

                                              Willst du etwa den Sinn und die Bytefolge voneinander trennen?
                                              Natürlich, es spielt ja auch keine Rolle, du kanst auch jedes Textdokument in irgendeiner Kodierung darstellen lassen, siehst halt andere Zeichen. Obn es richtig ist, erkennt erst der Mensch der sie lesen muss.

                                              Die Formulierung "jedes Textdokument in irgendeiner Kodierung darstellen lassen" missfällt mir, weil ich damit assoziiere, dass der Text _in_ eine Kodierung gebracht wird, und nicht die Datei _als_ etwas interpretiert wird oder gemäß $kodierung gelesen/interpretiert/dekodiert wird. Und dass die Bytefolge keine Rolle spiele, leuchtet mir immer noch nicht ein. Denn dann könnte ich eine Datei mit lauter FF-Bytes füllen und dem Leser sagen, er müsse es einfach nur richtig interpretieren. Ich muss als Quelle schon sinnerhaltend kodieren und am anderen Ende gleichermaßen dekodieren.

                                              Nach dem Satz glaube ich wir meinen doch das gleiche, drücken es nur anders aus. Das Programm, dass eine Bytefolge darstellen muss braucht eine Dekodierungsvorschrift.
                                              Eben. Die Umkehrfunktion zur verwendeten Kodierung.
                                              Die aber nicht notwendigerweise in der Datei ersichtlich ist.

                                              Ja, ihr Name oder ein anderer Hinweis auf die Kodierung ist oftmals nicht in Dateien enthalten, in einfachen Text-Dateien praktisch gar nicht, jedenfalls nichts standardisiertes. Aber ihr Inhalt ist etwas, das sich aus dem Ausgangstext und der Kodierung ergibt.

                                              Wenn ich in meinem Editor eine Datei öffne gibt es erstmal keine Kodierung, sie spielt also beim lesen keine Rolle. Sie spielt erst eine Rolle, wenn die Zeichen interpretiert werden sollen und das ist für mich darstellen.

                                              An dieser Stelle trennst du Dinge unnötig auf, scheint mir. Die allgemeine Betriebssystemfunktion zum Lesen aus Dateien liest natürlich Bytes ohne deren Sinn zu "hinterfragen". Das passiert aber einer Ebene, die unterhalb der betrachteten liegt. Der Editor, der den Bytestrom entgegennimmt, muss selbstverständlich die Datei dekodieren um sie in eine Form zu bringen, mit der er intern arbeiten kann. Er kann sie auch noch dreimal uninterpretiert im Speicher umlagern, aber das bringt uns als außenstehender Betrachter nicht weiter. Er muss jedenfalls schon für die interne Verarbeitung den Sinn der Zeichen kennen, und nicht erst dann, wenn er sie an die (Bildschirm-)Ausgaberoutine weitergibt. Wie soll er sonst Wortgrenzen oder Zeilen oder sowas erkennen?

                                              Das tut er, weil entweder er weiß, das z.b. eine .txt Datei in diesem windows-1252 Kodierung vorliegt oder du musst es dem Editor explizit sagen.

                                              Also spielt es doch eine Rolle, in welcher Kodierung der Dateiinhalt vorliegt, denn genau die brauche ich, um den Inhalt zu interpretieren.

                                              Schreib mal einen Text mit Umlauten in einem DOS Editor und schon merkst du, dass es dem Bytestrom an sich egal ist, du musst dem Editor sagen wie er zu dekodieren hat, damit die Darstellung dem entspricht was du erwartest.

                                              Dem Bytestrom ist es egal, weil er nur Transporteur ist. Mit ist es aber nicht egal, wie er aussieht, weil ich ihn wieder lesen muss. Zunächst muss ich dem Editor sagen, wie er den Text beim Schreiben zu kodieren hat. Und sei es, dass der Progammierer ihm das in Form einer Default-Einstellung implementiert hat. Dann kann ich auch beim Öffnen sagen, was er zum Dekodieren zu nehmen hat, damit ich den Text wiederbekomme und keinen Zeichensalat. Zur Not nimmt der Editor wieder die gleiche Default-Einstellung. Wenn es egal wäre, was der Editor schreibt, könnte er ja auch nur FF-Bytes schreiben. Da werde ich aber kaum eine Chance haben, den Text wiederzusehen, egal welche Kodierung ich dem Editor zum Interpretieren nenne.

                                              Lo!

                                  2. @@hotti:

                                    nuqneH

                                    Es würde mich wundern, wenn ein Publisher das Eurozeichen U+20AC mit dem Vector E2.82.AC aus einer Datei holen könnte, in der die Zeichen ISO-8859-x codiert sind.

                                    Mich nicht. Du schreibst die Zeichen U+00E2, U+0082, U+00AC ISO-8859-x codiert in eine Datei. Wie du U+0082 eingibst, steht hier nicht zur Debatte. Du darfst aber auch die Zeichen U+00E2, U+201A, U+00AC windows-1252-codiert in in eine Datei schreiben. In beiden Fällen hast du die Sequenz E2 82 AC.

                                    Gibst du nun bei der Verarbeitung an, die Datei soll UTF-8-decodiert werden, hast du das '€'-Zeichen.

                                    Qapla'

                                    --
                                    Volumen einer Pizza mit Radius z und Dicke a: pi z z a
                                    1. hi,

                                      ....u darfst aber auch die Zeichen U+00E2, U+201A, U+00AC windows-1252-codiert in in eine Datei schreiben. In beiden Fällen hast du die Sequenz E2 82 AC.

                                      Jetzt muss ich nochmal nachfragen: x201A kommt doch in Windows-1252 nicht vor, wie gebe ich das ein und wer macht daraus x82?

                                      Hotti

                                      1. @@hotti:

                                        nuqneH

                                        Jetzt muss ich nochmal nachfragen: x201A kommt doch in Windows-1252 nicht vor

                                        _Das_ hätte deine Nachfrage sin sollen. Doch, U+201A kommt in Windows-1252 vor.

                                        wie gebe ich das ein

                                        In Windows: bei gedrückter [Alt]-Taste auf dem Nummernblock(!) [0][1][3][0] eingeben. (130 = x82, na so’n Zufall!)

                                        und wer macht daraus x82?

                                        Na wer macht wohl aus Zeichen Bytewerte? Die Zeichencodierung.

                                        Meine Bemerkung ist vielleicht etwas provokant, mein Gefühl wird aber immer stärker, dass sie stimmt.

                                        Qapla'

                                        --
                                        Volumen einer Pizza mit Radius z und Dicke a: pi z z a
                                        1. h1,

                                          Meine Bemerkung ist vielleicht etwas provokant, mein Gefühl wird aber immer stärker, dass sie stimmt.

                                          Passt schon Gunnar ;-)

                                          Jetzt hab ich mir die dämliche 1252 nochmal richtig angeguckt, das ist ja bekloppt was da drinsteht. Und zwar mittendrinne!

                                          Hotti

                                          1. @@hotti:

                                            nuqneH

                                            Jetzt hab ich mir die dämliche 1252 nochmal richtig angeguckt, das ist ja bekloppt was da drinsteht.

                                            Finde ich nicht. Windows-1252 reicht für deutschsprachige Texte meist aus, ISO 8859-1 reicht nicht – eben weil das „Mittendrinne“ fehlt.

                                            (Das soll jetzt aber nicht als Plädoyer missverstanden werden, Windows-1252 anstatt UTF-8 zu verwenden.)

                                            Qapla'

                                            --
                                            Volumen einer Pizza mit Radius z und Dicke a: pi z z a
              2. @@hotti:

                nuqneH

                Auch wenn ISO-8859-1 angegeben ist, zeigt mein Browser das Zeichen x82 als Komma.

                Falsch.

                Kein Komma, sondern einfaches Anführungszeichen unten (U+201A SINGLE LOW-9 QUOTATION MARK).

                Qapla'

                --
                Volumen einer Pizza mit Radius z und Dicke a: pi z z a