Rolf: UTF-8 in ISO-8859-1 umwandeln

Hallo,

Umlaute und andere Sonderzeichen werden von JavaScript in UTF-8 umgesetzt,
aber die Zielseite verwendet ISO-8859-1, was ich nicht ändern kann.
Deshalb möchte ich die Strings vor der Ausgabe wieder zurückwandeln.
Nun die Frage, gibt es eine fertige Funktion oder muss ich frickeln?

m.b.G. Rolf

  1. Hi!

    Wenn du die Kodierung der Zielseite nicht aendern kannst, wie genau darf ich mir dann vorstellen, dass du Javascript dort einbauen/aendern kannst?

    Viel Spass beim frickeln...

    --
    "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
          - T. Pratchett
    1. Hai Steel,

      Wenn du die Kodierung der Zielseite nicht aendern kannst, wie genau darf
      ich mir dann vorstellen, dass du Javascript dort einbauen/aendern kannst?

      so genau, wie Du kannst ... ;-)
      Das Projekt hat mehr als eine Seite und ich bekomme das beim Projektleiter
      nicht durch, nur wegen einiger ALT-Tags das komplette Projekt umzustellen,
      also nicht nur die Webseiten, sondern auch die Datenbanken ... u.s.w.
      In das JS-Script redet mir ansonsten niemand rein.

      Viel Spass beim frickeln...

      danke ... ;-)

      Wozu braucht eigentlich eine rein deutsche Seite plötzlich UTF-8?
      Ich nehme mal an, weil es gerade IN ist, einen Nutzen hat es nicht.

      m.b.G. Rolf

      1. Hoi,

        Das Projekt hat mehr als eine Seite und ich bekomme das beim Projektleiter
        nicht durch, nur wegen einiger ALT-Tags das komplette Projekt umzustellen,

        Es geht dabei ja nicht um ein paar mit JS erstellte Alttags sondern um die Kompatibilitaet und Zukunftssicherheit der ganzen Seite. Dein Projektleiter hat die Zeit verschlafen. UTF ist ja keine 'Spielerei'.

        Wozu braucht eigentlich eine rein deutsche Seite plötzlich UTF-8?
        Ich nehme mal an, weil es gerade IN ist, einen Nutzen hat es nicht.

        Nicht? Also ich mag meine Umlaute und auch mein (moment, eben mal die Sprache umstellen) ß.

        UTF ist nicht 'IN' UTF ist ist 'muss'. UTF-8 ist die Antwort auf eine unendliche Zahl von Gebeten, geplagter Webautoren und Programmierer. UTF ist sowas wie der Babelfisch [*] und koennte von daher auch als Beweis Gottes gelten, wenn es nicht ein Mensch erfunden haette. ;)

        Ok, ok, ich uebertreibe, aber die Richtung stimmt schon.

        [*] muss man wohl kaum erklaeren, solange kein Literaturdilettant in der Naehe ist.

        --
        "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
              - T. Pratchett
        1. Hallo Steel,

          mach doch nicht so einen Wind, gebe mir bitte ein einziges Beispiel wo UTF
          dem deutschen Kunden einen Mehrwert gibt - siehste - es ist reine Abzocke!
          Ein billiger Vorwand um einen Kunden zu einem Relaunch zu überreden ... ;-)

          Okay, wenn man für Osteuropäer Seiten bauen will, da ist es etwas anderes.
          Aber das scheitert ja schon am Geldmangel der Leute ... ;-)

          Ungefähr seit 1969 habe ich mit der EDV zu tun, da gab und gibt es viele
          "Verbesserungen" die nur den Zweck hatten/haben neue Versionen zu verkaufen.
          Was mich dabei immer wundert, sind die Deppen die sich vor den Karren der
          Konzerne spannen und jeden Hype ohne Aussicht auf einen Cent mitziehen.

          So, und nun muss ich wieder mal frickeln ... :-(

          m.b.G. Rolf

          1. Hi!

            mach doch nicht so einen Wind, gebe mir bitte ein einziges Beispiel wo UTF
            dem deutschen Kunden einen Mehrwert gibt - siehste - es ist reine Abzocke!

            --
            "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
                  - T. Pratchett
            1. [latex]Mae  govannen![/latex]

              mach doch nicht so einen Wind, gebe mir bitte ein einziges Beispiel wo UTF
              dem deutschen Kunden einen Mehrwert gibt - siehste - es ist reine Abzocke!

              „“ und »«

              Cü,

              Kai

              --
              Ash nazg durbatulûk, ash nazg gimbatul,ash nazg thrakatulûk, agh burzum-ishi krimpatul
              selfcode sh:( fo:| ch:? rl:( br:< n4:# ie:{ mo:| va:) js:) de:> zu:) fl:( ss:| ls:?
              Mein Selfhtml-Kram
              1. @@Kai345:

                „“

                Ja.

                und »«

                Nö, U+00BB und U+00AB sollten sich problemlos in ISO 8859-1 codieren lassen.

                Als Ersatz biete ich … und – (Gedankenstrich) an.

                Live long and prosper,
                Gunnar

                --
                Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)
                1. es ist alles viel, viel einfacher!

                  Man muss nur dem Sender ordentlich klarmachen, dass er seine Daten
                  als ISO kennzeichnet, dann mehrt da auch niemand drin rum ...
                  Also:

                  header('Content-Type: text/plain; charset=ISO-8859-1');  
                  header('Content-Length: '.strlen($data));  
                  echo $data;
                  

                  Und schon kommt alles so an, wie man sich das vorstellt.

                  m.b.G. Rolf

                  1. Und schon kommt alles so an, wie man sich das vorstellt.

                    zumindest wenn der Browser das untersützt, in welchne hast du das getestet?

                    Struppi.

                    1. Und schon kommt alles so an, wie man sich das vorstellt.
                      zumindest wenn der Browser das untersützt, in welchne hast du das getestet?

                      natürlich zuerst im IE ... ;-)
                      Aber dann habe ich in den FF geschaut, und siehe da, der kann es auch.
                      Okay, dass er den "Alternativtext" nicht als ToolTipp anzeigt, sondern nur
                      im Kontexbild "Eigenschaften" preisgibt, ist vielleicht seine Marotte ...

                      m.b.G. Rolf

                      1. Hallo

                        Und schon kommt alles so an, wie man sich das vorstellt.

                        zumindest wenn der Browser das untersützt, in welchne hast du das getestet?

                        natürlich zuerst im IE ... ;-)

                        Aber dann habe ich in den FF geschaut, und siehe da, der kann es auch.
                        Okay, dass er den "Alternativtext" nicht als ToolTipp anzeigt, sondern nur
                        im Kontexbild "Eigenschaften" preisgibt, ist vielleicht seine Marotte ...

                        Er gibt es auch im geplanten Anwendungsfall von alt preis, nämlich dann, wenn durch die Nichtanzeige eines Bildes dessen Alternativtext, der in alt notiert zu sein hat, anzuzeigen ist. Das ist keinesfalls eine Marotte, sondern das "tut, wie muss" (neudeutsch: "works as designed"). Dass der IE (wie früher auch der Netscape-Browser bis Version 4.x) den Alternativtext zusätzlich als Tooltip anzeigt, ist eine andere Sache.

                        Tschö, Auge

                        --
                        Die deutschen Interessen werden am Liechtenstein verteidigt.
                        Veranstaltungsdatenbank Vdb 0.2
                        1. Hi,

                          Das ist keinesfalls eine Marotte, sondern das "tut, wie muss" (neudeutsch: "works as designed"). Dass der IE (wie früher auch der Netscape-Browser bis Version 4.x) den Alternativtext zusätzlich als Tooltip anzeigt, ist eine

                          ... Marotte.

                          MfG ChrisB

                          --
                          „This is the author's opinion, not necessarily that of Starbucks.“
                          1. Dass der IE (wie früher auch der Netscape-Browser bis Version 4.x)
                            den Alternativtext zusätzlich als Tooltip anzeigt, ist eine
                            ... Marotte.

                            siehste, es gibt eben auch positive Marotten ... ;-)

                            m.b.G. Rolf

                            1. @@Rolf:

                              den Alternativtext zusätzlich als Tooltip anzeigt, ist eine
                              ... Marotte.
                              siehste, es gibt eben auch positive Marotten ... ;-)

                              Nein, das ist keine positive Marotte des IE, sondern grenzenlose Dummheit.

                              Bsp.: <a href="foo" title="foo"><img src="bar" alt="bar"/></a>

                              Was sollte als Tooltip angezeigt werden? Selbstverständlich das, was im 'title'-Attribut des 'a'-Elements steht, also "foo".

                              Was zeigt IE an? "bar". Grenzenlose Dummheit.

                              Live long and prosper,
                              Gunnar

                              --
                              Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)
                              1. @@Rolf:

                                den Alternativtext zusätzlich als Tooltip anzeigt, ist eine
                                ... Marotte.
                                siehste, es gibt eben auch positive Marotten ... ;-)
                                Nein, das ist keine positive Marotte des IE, sondern grenzenlose Dummheit.

                                Quatsch,
                                dumm können nur Menschen sein, selbst meine Katze ist dazu zu dämlich ... ;-)
                                Einige gehen mit gutem Beispiel voran, andere versuchen sich zurück zu halten.
                                Thats live ...

                                m.b.G. Rolf

          2. Ungefähr seit 1969 habe ich mit der EDV zu tun,

            und hast seitdem keinen Blick über den Tellerand gewagt? ;)

            Mathias

          3. Hi,

            mach doch nicht so einen Wind, gebe mir bitte ein einziges Beispiel wo UTF
            dem deutschen Kunden einen Mehrwert gibt

            Kontakt mit einer anderen Kodierung. Da gibt es *immer* Probleme. Also muss eine Kodierung her, die jeden Zeichensatz abbilden kann, so dass Kontakte mit anderen Kodierungen keine Notwendigkeit mehr sind.

            Und siehe, es ward UTF.

            siehste - es ist reine Abzocke!

            UTF ist kostengünstiger als ISO. Beweis: Beide sind kostenlos, UTF fordert jedoch weniger teure Problemlösungen.

            Ungefähr seit 1969 habe ich mit der EDV zu tun, da gab und gibt es viele
            "Verbesserungen" die nur den Zweck hatten/haben neue Versionen zu verkaufen.

            Schade. Du hattest fast 40 Jahre Zeit, unterscheiden zu lernen, wann etwas sinnvoll ist und wann nicht. Viele andere haben das in sehr viel kürzerer Zeit gemeistert.

            Was mich dabei immer wundert, sind die Deppen die sich vor den Karren der
            Konzerne spannen und jeden Hype ohne Aussicht auf einen Cent mitziehen.

            Mich wundert eher das erzkonservative Festhalten an Althergebrachtem, egal wie problematisch und teuer es ist.

            So, und nun muss ich wieder mal frickeln ... :-(

            Ich glaube Dir, dass diese Bezeichnung treffend ist.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. @@Cheatah:

              Also muss eine Kodierung her, die jeden Zeichensatz abbilden kann,

              Jeden? Eigentlich muss eine Codierung her, die den bei Webseiten verwendeten Zeichensatz abbilden kann.

              Dieser ist *immer* Unicode [QA-DOC-CHARSET], da bietet sich natürlich Unicode Transformation Format (UTF) an.

              Und siehe, es ward UTF.

              So ward es.

              Live long and prosper,
              Gunnar

              --
              Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)
  2. Umlaute und andere Sonderzeichen werden von JavaScript in UTF-8 umgesetzt,

    Das ist so pauschal falsch.

    aber die Zielseite verwendet ISO-8859-1, was ich nicht ändern kann.
    Deshalb möchte ich die Strings vor der Ausgabe wieder zurückwandeln.

    Warum speicherst du das JS nicht in ISO ab?

    Nun die Frage, gibt es eine fertige Funktion oder muss ich frickeln?

    es gab mal einen Artikel, der genau so ein Funktion beschreibt, bei selfhtml (findet sich noch im google cache) Der wurde aber seltsamerweise gelöscht.

    Struppi.

    1. es gab mal einen Artikel, der genau so ein Funktion beschreibt, bei selfhtml (findet sich noch im google cache) Der wurde aber seltsamerweise gelöscht.

      Wir haben den Artikel archiviert.
      Der Artikel war irreführend und fehlerhaft. Sein Problemstellung ist nicht mehr gegeben und er hat unsinnige Lösungen vorgeschlagen.
      Das Problem der Rekodierung innerhalb von JavaScript ergibt sich nur äußerst selten. In den allermeisten Fällen liegt ein Denkfehler vor, weil es in JavaScript keine Kodierungen gibt. Kodierungen werden immer dann interessant, wenn JavaScript Daten per HTTP übergibt. Dann kann man sinnvollerweise nur encodeURIComponent für UTF-8-Kodierung verwenden, oder eben escape und muss dann an irgendeiner Stelle alle Zeichen außerhalb von Laten-1 herausfiltern. Die Notwendigkeit der Rekodierung ist in dem Fall aber nicht gegeben.

      Mathias

      1. Der Artikel war irreführend und fehlerhaft. Sein Problemstellung ist nicht mehr gegeben und er hat unsinnige Lösungen vorgeschlagen.

        Ich fand die Funktionen trotzdem interessant und in ganze wenigen Fällen könnte ich mir sogar eine Verwendung vorstellen, wobei aber klar ist, dass es nur ein Workaround ist, für ein Problem das anders besser lösbar ist.

        Struppi.

        1. Ich fand die Funktionen trotzdem interessant und in ganze wenigen Fällen könnte ich mir sogar eine Verwendung vorstellen, wobei aber klar ist, dass es nur ein Workaround ist, für ein Problem das anders besser lösbar ist.

          Ja. Vielleicht werde ich sie irgendwann ausgraben, neu schreiben, dokumentieren und sinnvolle Anwendungsbeispiele suchen. Bis dato hat dieser hoffnunglos veraltete Artikel aber mehr Schaden als Nutzen angerichtet.

          Mathias

  3. Umlaute und andere Sonderzeichen werden von JavaScript in UTF-8 umgesetzt,

    JavaScript an sich kennt keine Kodierung.
    Kodierungen kommen dann ins Spiel, wenn du JavaScript-Strings in bestimmte andere Kontexte überführst.

    JavaScript-Dateien haben jedoch eine Kodierung. Sobald die der Browser korrekt erkennt, ist es aber z.B. kein Problem, ein UTF-8-kodiertes JavaScript in ein ISO-8859-1-kodiertes HTML-Dokument einzubinden. Wenn der Browser beide erst einmal gelesen hat, gibt es für ihn keine unterschiedlichen Kodierungen mehr.

    aber die Zielseite verwendet ISO-8859-1, was ich nicht ändern kann.

    Erkläre uns doch mal, was dein Script macht und was du mit »Zielseite« meinst. Sendest du per JavaScript Formulardaten an die Zielseite? Bindet die Zielseite das Script ein? Montierst du JavaScript-Strings in die URI der Zielseite ein, um ihr die Daten zu übergeben...?

    Deshalb möchte ich die Strings vor der Ausgabe wieder zurückwandeln.

    Wenn die Daten bei der Zielseite falsch kodiert ankommen, dann ist bei der Übertragung etwas schiefgelaufen.

    Wenn man beliebige Unicode-Zeichen aus einem JavaScript-String in einem »Kanal« übertragen will, der nur ASCII versteht (z.B. URIs), dann nutzt man http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#encode_uri_component@title=encodeURIComponent (Kodierung) und http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#decode_uri_component@title=decodeURIComponent (Dekodierung). Das ist eine Transferkodierung, keine Zeichenkodierung. (Intern benutzt sie aber UTF-8 zur Zeichenkodierung, aber das kann egal sein.)

    Nun die Frage, gibt es eine fertige Funktion oder muss ich frickeln?

    Wie gesagt besteht in JavaScript i.d.R. keine Notwendigkeit, Zeichendaten rekodieren zu müssen. Üblicherweise löst man solche Probleme auf einer anderen Ebene (Transferkodierung, die alle Unicode-Zeichen über ein ASCII-fähiges Protokoll überträgt), sodass JavaScript damit nichts mehr zu tun hat. Das ist auf jeden Fall die bessere Lösung.

    Mathias