christian: nochmal umlaute

hi,

hatte vor ein zwei tagen einen ähnlichen thread(allerdings auch schon wieder weg:-))

habe eine my_sql db mit einträgen die auch äöüß usw. enthalten.
wenn ich in der db einen select mache werden sie dort auch so dargestellt. Nun lese ich die Daten, aber mit php aus und lasse sie darstellen. Hier werden diese nicht angezeigt:-(

im letzten thread bekam ich tips wie zb: htmlspecialchars() und <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
hatte aber leider nicht geholfen. weiß inzwischen auch warum:
htmlspezialchar() kovertiert ja nur äöü in ä usw. allerdings kommt im string aus der db nicht äöü usw sondern: üá solche schönen charakter:-( diese kann htmlspecialchars() ja auch nicht umwandeln.

kennt vielleicht jemand das problem und kann mir weiterhelfen?

grüße aus hamburg

  1. habe eine my_sql db mit einträgen die auch äöüß usw. enthalten.
    wenn ich in der db einen select mache werden sie dort auch so dargestellt. Nun lese ich die Daten, aber mit php aus und lasse sie darstellen. Hier werden diese nicht angezeigt:-(

    im letzten thread bekam ich tips wie zb: htmlspecialchars() und <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
    hatte aber leider nicht geholfen. weiß inzwischen auch warum:
    htmlspezialchar() kovertiert ja nur äöü in ä usw. allerdings kommt im string aus der db nicht äöü usw sondern: üá solche schönen charakter:-( diese kann htmlspecialchars() ja auch nicht umwandeln.

    Deswegen sollst Du für Umlaute und dergleichen ja auch htmlentities() benutzen. htmlspecialchars() ist für Zeichen wie die Umlaute vollkommen nutzlos, weil es sich nur mit < > & sowie den Anführungszeichen beschäftigt.

    Bevor man Funktionen benutzt, sollte man sich die Anleitung dazu durchlesen (hier: http://www.php.net/manual/de/function.htmlentities.php und http://www.php.net/manual/de/function.htmlspecialchars.php), andernfalls gebe ich das nächste Mal den Tipp, "format(c:)" zu probieren, um den Buchstaben c auszugeben :)

    kennt vielleicht jemand das problem und kann mir weiterhelfen?

    a) <meta http-equiv="content-type" content="text/html; charset=utf-8">
    üá sieht verdächtig nach utf-8-Kodierung (Unicode) aus.

    b) http://forum.de.selfhtml.org/archiv/2002/5/13151/#m72777

    Gruß,
      soenk.e

    1. hi

      hier mein codesnippstel:

      while($row = mysql_fetch_row($produkte))
       {
        if($stat==1)
        {
         print("<tr bgcolor='#224058'><td>" . $row[1] . "</td>");
         print("<td>" . htmlentities($row[3]) . "</td>");
         print("<td>" . $row[2] . "/EUR</td>");
         print("<td bgcolor='#000000' align=right><A href='warenkorb.php?s_id=".session_id()."&p_id=".$row[0]."'>in den Einkaufswagen</A></td></tr>");
         $stat = 0;
        }
        else
        {
         print("<tr bgcolor='#2D496D'><td>" . $row[1] . "</td>");
         print("<td>" . $row[3] . "</td>");
         print("<td align=right>" . $row[2] . "/EUR</td>");
         print("<td bgcolor='#000000' align=right><A href='warenkorb.php?s_id=".session_id()."&p_id=".$row[0]."'>in den Einkaufswagen</A></td></tr>");
         $stat = 1;
        }
       }

      hab jetzt nur in einer zeile htmlentities eingefügt geht aber nicht:-(

      1. hier mein codesnippstel:

        Das sieht soweit in Ordnung aus, mal abgesehen davon, daß Du in den Verweisen falscherweise ein & benutzt:

        print("<td bgcolor='#000000' align=right><A href='warenkorb.php?s_id=".session_id()."&p_id=".$row[0]."'>in den Einkaufswagen</A></td></tr>");

        Das Zeichen & ist für sich alleine in HTML-Code nicht erlaubt, es muß also &p_id= heißen.

        hab jetzt nur in einer zeile htmlentities eingefügt geht aber nicht:-(

        Das dachte ich mir schon, hast Du denn den Zeichensatz auf utf-8 geändert, wir ich Dir vorgeschlagen hatte? Kann man sich das Ergebnis irgendwo anschauen?

        Gruß,
          soenk.e

        1. hi

          kann man leider nicht anschauen. hab auch auf utf eingestellt und htmlentities. sieht jetzt so aus: zb Schläger sieht so aus: schl ger und großer so: groàer

          sagt die das denn was?

          grüße

          1. kann man leider nicht anschauen. hab auch auf utf eingestellt und htmlentities. sieht jetzt so aus: zb Schläger sieht so aus: schl ger und großer so: groàer

            Da hab ich mich wohl nicht so ganz klar ausgedrückt: entweder htmlentities() _oder_ utf-8. Beides zusammen wird nix. Und so wie es aussieht (d.h. ein Umlaut => zwei Bytes), kann htmlentities() hier eh nichts machen.
            Falls es mit der Meta-Angabe utf-8 nicht geht, kannst Du nochmal versuchen, im Browser die Zeichencodierung umzustellen (z.B. Mozilla: Menü Ansicht -> Zeichenkodierung).
            Last but not least: Mit einem Hexeditor anschauen, was für bytes PHP da so für die Umlaute ausgibt. Dann könnte man wenigstens schonmal genau sagen, welcher und ob da ein Zeichensatz im Spiel ist.

            Ansonsten: Keine Ahnung :)

            Gruß,
              soenk.e