utf-8_decode kann nicht alle utf-8 zeichen??

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

  • utf-8_decode kann nicht alle utf-8 zeichen??

    hallo,
    ich habe eine xml datei mit utf-8 codierung. ein satz darin auf kurdisch ist z.b. "Wxîşk û bira: yek bira şeş xwîşk". das problem ist, dass ich z.b. diesen satz nicht wieder fehlerfrei in html ausgegeben bekomme. mit uft8_decode() bekomme ich "Wxî?k û bira: yek bira ?e? xwî?k". einige zeichen scheint die funktion also nicht zu können. den dritten buchstaben (i mit dem dach) kann die funktion hingegen.

    die ausgabe ist in ordnung, sobald ich ohne utf8_decode im browser den charset auf utf-8 stelle. das kommt aber nicht in frage, da andere teile der webseite ohne charset dargestellt werden müssen. den meta tag kann ich also auch nicht einsetzen.

    im prinzip brauche ich das, was dreamweaver beim ändern der seiteneigenschaften mit der dokumentcodierung macht. dort werden ausnahmslos alle utf-8 zeichen umgewandelt. der obere satz ergibt dann "Wxîşk û bira: yek bira şeş xwîşk".

    ich bin schon seit stunden am rumprobieren, komme aber nicht weiter.
    hat jemand eine idee?

  • #2
    Re: utf-8_decode kann nicht alle utf-8 zeichen??

    ob wohl nicht alle Zeichen die es in utf8 gibt auch in ISO vorhanden sind?

    Mach die Seite komplett zu utf8 und schmeiß ISO raus...wenn du schon solch Zeichen verwendest/verwenden musst, wäre das ein guter Anlass ^^
    Zuletzt geändert von ghostgambler; 07.12.2005, 23:06.

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

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

    Kommentar


    • #3
      hi ghostgambler,
      danke für deine antwort. leider ist meine seite recht komplex. das dilemma sieht man hier: http://www.feleknasuca.de/inhalte/vita.php5?lg=ku

      die inhalte der biografie werden als einziges element der webseite aus einer xml datei geladen. stellt man im browser oder über den meta-tag im header die codierung auf utf-8, dann wird der text zwar korrekt dargestellt, aber links z.b. die überschrift "navigation" und andere dinge nicht mehr.

      notfalls muss ich ansonsten in den sehr sauren apfel beißen und alle anderen fremdsprachigen inhalte per hand in utf-8 ändern und den meta-tag einbauen. bisher habe ich alles in einem mehrdimensionalen php array in iso gespeichert.
      beispiel: 'willkommen' => array ('de' => 'Willkommen', 'tr' => 'Hoşgeldiniz', 'ku' => 'Hun bi xêr hatin')

      Kommentar


      • #4
        Original geschrieben von mael15
        hi ghostgambler,
        danke für deine antwort. leider ist meine seite recht komplex. das dilemma sieht man hier: http://www.feleknasuca.de/inhalte/vita.php5?lg=ku
        die Seite sieht bei mir unter ISO genauso aus wie unter UTF8 (Firefox 1.5)

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

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

        Kommentar


        • #5
          sorry, ghostgambler. der link zeigt das problem nicht mehr. das projekt musste dringend fertig werden und ich habe die daten nun nicht mehr aus der xml datei gelesen, sondern wie alle anderen daten auch aus einem php array.

          die lösung würde mich natürlich nach wie vor interessieren. ich habe allerdings schon so viele stunden erfolglos im netz nach einer möglichkeit gesucht, dass ich schon nicht mehr daran glaube, dass es klappen könnte.

          Kommentar


          • #6
            einfach mal probiert
            PHP-Code:
            echo htmlentities("Wxîşk û bira: yek bira şeş xwîşk"ENT_COMPAT'UTF-8'); 
            ???

            [edit] der String sollte dein Beispiel oben sein....das Forum versucht da irgendwie die Zeichen zu HTML zu konvertieren! Oo,)

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

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

            Kommentar


            • #7
              hi ghostgambler,
              der befehl htmlentities() wandelt leider nicht alle zeichen um. z.b. bleibt das "s mit dem haken drunter" im quelltext unverändert. ich teste immer mit folgenden dateien:

              <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
              <html>
              <head>
              </head>
              <body>
              <?php
              $xml = simplexml_load_file('test.xml');
              echo htmlentities($xml, ENT_COMPAT, 'UTF-8');
              ?>
              </body>
              </html>

              -----------------------------------
              test.xml:

              <?xml version="1.0" encoding="utf-8"?>
              <ku>Wxîşk û bira: yek bira şeş xwîşk</ku>

              --------------------------------------

              utf8_decode() liefert folgendes:
              Wxî?k û bira: yek bira ?e? xwî?k

              Kommentar

              Lädt...
              X