muga: convertUmlaut

Hallo Leute

ich brauche eine Methode in Ajax, die mir die deutsche Umlaute convertiert,d.h wenn der Titel getränke heisst, sollte getraenke auftauchen!

bin für jede Hilfe sehr Dankbar

gruß

muga

  1. hi,

    ich brauche eine Methode in Ajax, die mir die deutsche Umlaute convertiert,d.h wenn der Titel getränke heisst, sollte getraenke auftauchen!

    bin für jede Hilfe sehr Dankbar

    Und ich bin neugierig: Für was brauchstn eine solche Umwandlung?

    Hotte

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

      kurzgefasst:
      Das Problem ist folgendes, ich arbeite an einem Project, in dem man von zuhause einkaufen kann, nun tauchen die produkte auf und oben nebeneinander ihre Namen. wenn du z.b auf eine dieser namen druckst, zeigt er direkt das Bild des Produt, aber wenn dieser Name ein umlaut hat, dann zeigt er "LEER" züruck.

      gruß

      muga

      1. Das Problem ist folgendes, ich arbeite an einem Project, in dem man von zuhause einkaufen kann, nun tauchen die produkte auf und oben nebeneinander ihre Namen. wenn du z.b auf eine dieser namen druckst, zeigt er direkt das Bild des Produt, aber wenn dieser Name ein umlaut hat, dann zeigt er "LEER" züruck.

        Was hat der Name mit dem Bild zu tun? Wird über den Namen das Bild vom Server geholt?
        Dann sorgen einfach dafür, dass die Zeichen richtig kodiert werden (vorzugsweise mit UTF-8), alle beteiligten Programme mit dieser Kodierung arbeiten. Um Daten beim Senden zum Server mit UTF-8 zu kodieren, verwendest du JavaScripts encodeURIComponent. Und damit der Browser weiß, in welcher Kodierung die Serverantwort kommt, kannst du mit einem Content-Type-Header erreichen.

        Eine JS-seitige Ersetzung ist vermutlich keine Lösung, sondern ein Workaround, weil an anderer Stelle etwas falsch läuft.

        Mathias

        1. mal abgesehen von dem Bilder!

          die function, die ich wollte sollte so ausehen:

          function convertUmlaut(titel) {

          var temp = titel.replace(/ü/g,"ue");
             temp = temp.replace(/ä/g, "ae");
            document.wriete(temp);
          }
           ich kriege  den Titel wie gewünscht convertiert,

          die Methode habe ich in javascript getestet und es hat 100% funktioniert, aber wenn ich die Methode in Ajax teste, kriege ich den Titel nicht convertiert:-((

          weisst jemand jetzt, warum es nicht in Ajax klappt?

          falls ja, kannst du mir die Methode anpassen, sodass es in Ajax den convertieten Titel rauskommt.

          danke vorab

          muga

          1. die Methode habe ich in javascript getestet und es hat 100% funktioniert, aber wenn ich die Methode in Ajax teste, kriege ich den Titel nicht convertiert:-((

            Wie gesagt ist keine Ajax keine Programmiersprache, was meinst du mit »in JS geht es, in Ajax nicht«? Was genau tust du? Zeig und beschreibe es uns bitte.

            Ajax bezeichnet das Laden von Inhalten vom Webserver mittels JavaScript, genauer gesagt XMLHttpRequest. Über die Eigenschaft responseText des XMLHttpRequest-Objektes kommst du an die zurückgesendeten Daten heran. Das ist ein String und darauf kannst du selbstverständlich auch replace anwenden.

            Mathias

            1. Hallo mathias

              ich wird langsam wahnsinnig.

              ich habe folgendes getestet:
               [php]<script type;'text/javascript'>

              function convertUmlaut() {

              var name = "müal älkho";

              var temp = name.replace(/ü/g,"ue");
                temp = temp.replace(/ä/g,"ae");
               alert (temp)
              }
               </script>

              <a href='javascript:convertUmlaut()'> teste mich</a>[/php]

              und ich habe (mueal aelkho) rausbekommen.

              aber wo ich die Methode anders geschrieben und zwar so

              [php]<script type;'text/javascript'>

              function convertUmlaut(titel) {

              var temp = titel.replace(/ü/g,"ue");
                temp = temp.replace(/ä/g,"ae");
               alert (temp)
              }
               </script>

              <a href="javascript:convertUmlaut('müal älkho')"> teste mich</a>[/php]

              habe ich nix rausbekommen

              woran liegt das?

              vielen Dank

              1. Hi,

                ich wird langsam wahnsinnig.

                stimmt, in dieser Formulierung erkenne ich Anwandlungen von Schizophrenie ;-)

                Werden die AJAX-Ressourcen mit dem selben Encoding versendet wie das requestende HTML-Dokument? Stimmt dies mit den Encodings der serverseitig vorliegenden erzeugenden Dateien und/oder Datenquellen überein?

                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. Hi,

                  »» ich wird langsam wahnsinnig.

                  stimmt, in dieser Formulierung erkenne ich Anwandlungen von Schizophrenie ;-)

                  Werden die AJAX-Ressourcen mit dem selben Encoding versendet wie das requestende HTML-Dokument? Stimmt dies mit den Encodings der serverseitig vorliegenden erzeugenden Dateien und/oder Datenquellen überein?

                  Cheatah

                  hi Cheatah

                  Werden die AJAX-Ressourcen mit dem selben Encoding versendet wie das requestende HTML-Dokument? Stimmt dies mit den Encodings der serverseitig vorliegenden erzeugenden Dateien und/oder Datenquellen überein?

                  ja es stimmt alles soweit!

                  1. Hi,

                    ja es stimmt alles soweit!

                    und wird auch _tatsächlich_ der Umlaut versendet, oder ist er in irgend einer Form kodiert?

                    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. Hi,

                      »» ja es stimmt alles soweit!

                      und wird auch _tatsächlich_ der Umlaut versendet, oder ist er in irgend einer Form kodiert?

                      Cheatah

                      abgesehen von ajax, ich versuche den Code in javascript laufenzulassen, wenn es erst da klappt, dann shaue ich auf Ajax. der Code funktioniert gar nicht in javascript.

                      ich habe oben beide Beispiele geschrieben einer lief und der andere lief gar nicht

                      grüß
                      muga

              2. woran liegt das?

                An etwas, was wir nicht erraten können, solange du es uns nicht verrätst, indem du mehr Infos preisgibst.

                http://molily.de/temp/enc1.html
                http://molily.de/temp/enc2.html

                Beide Dateien sind UTF-8-kodiert (was hier aber keine Rolle spielt - eine andere Kodierung ginge auch, entscheidend ist, dass alle Zeichen entsprechend der angegebenen Kodierung kodiert sind).

                Mathias

              3. Hi,

                [php]

                Wieso PHP? Es kommt doch HTML. (Ok, zumindest sowas ähnliches).
                Ansonsten: informiere Dich, wie hier Code eingebunden wird.

                <script type;'text/javascript'>

                Das ist kein HTML. Bei HTML wäre anstelle des ; ein =

                u.U. führt das Fehlen des type-Attributs in einem Browser dazu, daß das Script nicht ausgeführt wird.

                [php]<script type;'text/javascript'>

                s.o.

                Was sagt eigentlich die Javascript-Console zu Deinen Versuchen?

                cu,
                Andreas

                --
                Warum nennt sich Andreas hier MudGuard?
                O o ostern ...
                Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
          2. hi,

            document.wriete(temp);

            die Methode habe ich in javascript getestet und es hat 100% funktioniert,

            Mit welchem Browser funktioniert document.wriete(); ??? Vielleicht kommen wir hier weiter...

            Hotte

            1. Hi,

              document.wriete(temp);

              die Methode habe ich in javascript getestet und es hat 100% funktioniert,

              Mit welchem Browser funktioniert document.wriete(); ???

              Vielleicht mit einem gewissen, berüchtigten - aber da selbst der JavaScript im allgemeinen case sensitive behandelt, muss es vermutlich eher document.wrIEte heissen ...

              SCNR ChrisB

              --
              Light travels faster than sound - that's why most people appear bright until you hear them speak.
      2. ... wenn dieser Name ein umlaut hat, dann zeigt er "LEER" züruck.

        Benutzt du JSON für AJAX? Wenn ja, dann muss du wissen, dass JSON keine Umlaute verträgt. Um das Problem zu umgehen musst du auf dem Server das utf8_encode verwenden. Dem Browser ist das egal, der zeigt utf8 Umlaute genau so wie ISO... an.

        Schwieriger wird es, wenn du die erhaltenen Daten nicht anzeigen, sondern z.B. in einem Dateinamen verwenden willst. Da gibt es bei phpjs.org eine utf8_decode, nur funktioniert es irgendwie nicht wie es sollte. Wie das zu lösen ist, weiss ich selber nicht. Siehe http://www.orpatec.ch/index.php?page=gallery.php

        1. Benutzt du JSON für AJAX? Wenn ja, dann muss du wissen, dass JSON keine Umlaute verträgt.

          Unsinn. Das hat mit JSON nichts zu tun. JSON erlaubt natürlich auch Umlaute in Strings.

          Um das Problem zu umgehen musst du auf dem Server das utf8_encode verwenden.

          Wenn die Ausgangsdaten ISO-8859-1 sind und man PHP verwenden, dann kann man das zur Transkodierung verwenden.

          Dem Browser ist das egal, der zeigt utf8 Umlaute genau so wie ISO... an.

          XMLHttpRequest erwartet in den meisten Browsern eine UTF-8-Antwort, wenn ich mich recht entsinne.

          Wie das zu lösen ist, weiss ich selber nicht.

          Ja, weil du - sorry - dir nicht helfen lassen willst und auf Nachfragen nicht eingehst.

          Mathias

  2. Hi!

    ich brauche eine Methode in Ajax, die mir die deutsche Umlaute convertiert,d.h wenn der Titel getränke heisst, sollte getraenke auftauchen!

    Es gib 'in AJAX' keine Methoden. Das ist keine Programmiersprache.

    Javascript hält aber die Methode http://de.selfhtml.org/javascript/objekte/string.htm#replace@title=replace() eines Strings vor.

    Die Frage, die bleibt: Warum willst Du das? Bist Du gegen Umlaute allergisch? Es ist ja ein extra Aufwand, der erstmal ja gar nicht nötig ist.

    JS benutzt UTF-8 zur Zeichenkodierung. Wenn Du in deinem Projekt allgemein UTF-8 verwendest, sollte es keine Probleme geben. Wenn nicht kommen natürlich interessante Zeichen oder sogar Programmfehler vor.

    --
    "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
          - T. Pratchett
    1. JS benutzt UTF-8 zur Zeichenkodierung.

      JavaScript kennt keine Zeichenkodierung.
      Eingabedaten liegen stets als bereits dekodierte Unicode-Zeichen vor, Ausgabedaten kann man ggf. URL-maskieren mit UTF-8-Kodierung, sofern nötig.

      Mathias