UFT-8 in Unicode umwandeln

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • UFT-8 in Unicode umwandeln

    Hallöchen!!

    Habe folgendes Problem,

    Ich lese aus einer datei Mitgliedsnamen aus, die z.B. so aussehen:

    ri%c3%90%c3%90ler

    anschließend wandle ich sie mittels urldecode (); um.

    Funktioniert eigentlich auch ganz gut, aber sobald ein Mitglied Sonderzeichen im namen hat, werden diese nicht korrekt angezeigt.

    das ganze sieht dann wie folgt aus:

    riĐĐler

    sollte aber eigentlich so aussehen:

    riĐĐler

    Hat jemand vllt. ein tipp, wie ich dieses problem lösen kann?
    gibt es dafür eine php funktion die ich evtl. übersehen habe?

    ...mfg schickimicky
    Zuletzt geändert von schickimicky; 09.01.2007, 17:23.

  • #2
    Re: UFT-8 in Unicode umwandeln

    "UTF-8 in Unicode umwandeln" ist Blödsinn - UTF-8 ist doch bereits eine Darstellung von Unicode, also was willst du da "umwandeln"?

    riĐĐler
    Das sind die Bytes, die riĐĐler in UTF-8 abbilden - aber als ASCII interpretiert.

    Sorge also dafür, dass deine Daten auch als UTF-8 interpretiert werden, wenn sie bereits in UTF-8 vorliegen - liefere also dein HTML-Dokument entsprechend aus.
    (Und frag bitte nicht sofort nach, wie das geht - sondern versuche dich zu informieren.)
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Re: Re: UFT-8 in Unicode umwandeln

      Original geschrieben von wahsaga
      Sorge also dafür, dass deine Daten auch als UTF-8 interpretiert werden, wenn sie bereits in UTF-8 vorliegen
      Hi!

      Ja das ist ja mein problem, die namen liegen halt nur so vor:

      ri%c3%90%c3%90ler

      Ich habe leider auch keinerlei einfluss darauf, da sie auf einem anderen server liegen.

      *edit*
      Soo, hab jetzt nochmal das netz durchgeforstet und
      gehe jetzt wie folgt vor:

      PHP-Code:
      $name ="ri%c3%90%c3%90ler";
      $name rawurldecode($name);
      $name utf8_decode($name);

      echo 
      $name
      Jetzt zeigt er mir schon einige sondezeichen an, aber leider nicht alle. bin langsam echt ratlos


      mfg schickimicky
      Zuletzt geändert von schickimicky; 09.01.2007, 17:07.

      Kommentar


      • #4
        und in welcher kodierung schickt der server den string an deinen client?

        Kommentar


        • #5
          Hi!

          sorry aber das weiß ich nicht genau.

          ich lese diese seite hier:

          http://game.trackmanianations.com/on...i_w_0c0ri__ler

          mit

          PHP-Code:
          $data = @file_get_contents("http://ladder.trackmanianations.com/ladder/getstats.p...._i_w_0c0ri__ler");
          $dataparts explode (";"$data);
          $name dataparts[2]; 
          aus.

          mfg schickimicky

          Kommentar


          • #6
            es geht darum, welcher http header an den browser gesendet wird, wenn du deine seite mit dem echo $name aufrufst.

            Kommentar


            • #7
              PHP-Code:
              <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"
              hab ich auch schon rumprobiert, den chartset zuändern in utf-8 und ISO-8859-1.

              Doch leider wird das "?" schon bei

              PHP-Code:
              $name utf8_decode($name); 
              erzeugt.

              Wir z.b. bei diesem mitglied: %c5%8aY

              soll aber eigentlich heißen: ŊY

              aber stattdessen wird nur: ?Y

              angezeigt.

              mfg schickimicky

              Kommentar


              • #8
                was sagt denn mb_detect_encoding() nach dem urldecode?

                Kommentar


                • #9
                  Re: Re: Re: UFT-8 in Unicode umwandeln

                  Original geschrieben von schickimicky
                  Hi!

                  Ja das ist ja mein problem, die namen liegen halt nur so vor:

                  ri%c3%90%c3%90ler

                  Ich habe leider auch keinerlei einfluss darauf, da sie auf einem anderen server liegen.
                  mach dich erstmal schlau, wie die Daten eingegeben wurden, dann stellst du sie mit genau der entsprechende Encoding/Charset dar.

                  Es ist ziemlich egal, wie die Datenbank ist, es ist nur wichtig, dass Ein- und Ausgabe auf dem selben Weg erfolgt. Ich betreibe auch Site mit exotischen Sprachen, habe aber das Problem nie

                  Kommentar


                  • #10
                    Original geschrieben von penizillin
                    was sagt denn mb_detect_encoding() nach dem urldecode?
                    das gibt mir UTF-8 aus.

                    Original geschrieben von asp2php
                    mach dich erstmal schlau, wie die Daten eingegeben wurden, dann stellst du sie mit genau der entsprechende Encoding/Charset dar.
                    dazu habe ich leider keine möglichkeit.

                    Kommentar


                    • #11
                      Original geschrieben von schickimicky
                      dazu habe ich leider keine möglichkeit.
                      Warum? Sind es geklaute Daten? Denn sonst kann man ja nachfragen.

                      Kommentar


                      • #12
                        wenn der string $name in utf-8 vorliegt, musst du ihn auch in einer utf-8 seite ausgeben. dafür musst du den meta-tag anpassen und evtl. einen header() manuell abschicken.

                        Kommentar


                        • #13
                          Original geschrieben von schickimicky
                          Doch leider wird das "?" schon bei
                          $name = utf8_decode($name);
                          erzeugt.
                          Logisch - weil sich nun mal nicht alle Unicode-Zeichen in ISO-8859-1 darstellen lassen, sondern nur eine sehr kleine Teilmenge ...
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            Original geschrieben von penizillin
                            wenn der string $name in utf-8 vorliegt, musst du ihn auch in einer utf-8 seite ausgeben. dafür musst du den meta-tag anpassen und evtl. einen header() manuell abschicken.
                            Super Danke! hat funktioniert!!!

                            nur leider hab ich jetzt ein kleines problem mit den umlauten.
                            Da die seite mit den mitgliedern includet wird, werden jetzt auf der restlichen seite alle umlauten nicht mehr dargestellt. muss ich jetzt alle umlaute umbenennen in &_uuml; (ohne _) usw. oder gibt es da nen trick wie ich umlaute in utf-8 darstellen kann?

                            Original geschrieben von asp2php
                            Warum? Sind es geklaute Daten? Denn sonst kann man ja nachfragen.
                            Nein natürlich nicht. An eine mailanfrage hab gar nicht gedacht
                            aber egal jetzt funktioniert es ja!
                            mfg schickimicky
                            Zuletzt geändert von schickimicky; 10.01.2007, 01:29.

                            Kommentar


                            • #15
                              du kannst nicht zwei charsets gleichzeitig darstellen, entweder htmlentities auf eines anwenden, oder die mb_funktionen mal anschauen und ein Charset konvertieren

                              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                              Wie man Fragen richtig stellt

                              Kommentar

                              Lädt...
                              X