DB umlaute in script richtig darstellen

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

  • DB umlaute in script richtig darstellen

    Hallo bitte um Hilfe,

    folgendes problem ich habe ein script das die db ausliest und als ticker darstellt.!

    Leider ist es so das die einträge in der Datebank so aus sehen änderung

    Als laufschrift kommt dan folgendes raus...

    z.b änderung

    Kann man in dem Script das wieder richtig zur darstellung bringen also das es dan heist Änderung es geht um die umlaute...

    Hier mal das script schnippsel

    PHP-Code:
    // $action auslesen. 
       
    $action get('action'); 
    $db = new Mysql
    $db->connect($mysql_host$mysql_user$mysql_pass); 
    $db->select_db($mysql_base); 

    echo <<<
    EOF 

      
    EOF



    $wishes $db->read_array("rp_wishbox""*""moderator=
    get_mod_id(), "date ASC"); 


    if(
    count($wishes) == 0

    echo 
    "Keine W&uuml;nsche vorhanden</marquee></h5>"

    if(
    get('id')){ 
       
    $details $db->read("rp_wishbox""*"" " get('id')); 

       echo 
    "<marquee><h4>Wünscher:&nbsp;" $details['name'] . "
    &nbsp;&nbsp;Wunschtitel:&nbsp;" 
    $details['wish'] . "&nbsp;&nbsp;Grußtext:
    &nbsp;" 
    $details['text'] . "</h4></marquee>\n"




    echo <<<
    EOF 
    Zuletzt geändert von speedway2002; 29.09.2007, 18:13.

  • #2
    1. bitte den code umbrechen, keiner scrollt gerne horizontal.
    2. welchen zeichensatz hast du in der db eingestellt?
    3. welchen zeichensatz hast du für dein dokument genommen?

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Die "Verbindung" nicht vergessen (falls MySQL).

      PHP-Code:
      $dbh->query('SET NAMES utf8;');
      $dbh->query('SET CHARACTER_SET utf8;'); 
      PS: In einem UTF-8 Dokument brauchst du die Umlaute nicht mit Entitäten zu schreiben:
      PHP-Code:
      W&uuml;nsche Wünsche 
      Zuletzt geändert von ModestLife; 29.09.2007, 18:11.
      Mein PHP Blog

      Kommentar


      • #4
        Oh je wie mache ich das den bin nicht so der PHP programmer habs nur so hinbekommen das es geht....

        In der Datenbank steht bei utf8_general_ci bei Kollation.

        Liegt das an dem versende Script der die Daten zur DB schiekt oder kann man nicht einfach die ausgabe wieder richtig darstellen lassen...???

        Kommentar


        • #5
          PHP-Code:
          <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 
          z.b. das hat aber nichts mit php sondern mit html zu tun und gehört eigentlich zu den grundlagen.

          gruß
          peter
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #6
            Das habe ich drine stehen...!!!!

            <meta http-equiv="content-type" content="text/html; charset=UTF-8" />

            Zuletzt geändert von speedway2002; 29.09.2007, 19:22.

            Kommentar


            • #7
              In einem UTF-8 Dokument brauchst du die Umlaute nicht mit Entitäten zu schreiben:
              beachtet?

              Das habe ich drine stehen...!!!!
              online-beispiel verfügbar? wie kommen die daten denn in die db?

              gruß
              peter
              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
              Meine Seite

              Kommentar


              • #8
                Sorry sagte doch kenne mich net so aus...


                Ich habe irgendwo gelessen das man das wieder im Script umwandeln kann...

                $name = str_replace (array("ä", "ö", "ü", "ß"), array("ae", "oe", "ue", "ss"), $name_mit_umlaute);

                Nur weiss ich nicht wie man an der stelle einbaut..


                echo "<marquee><h4>Wünscher:&nbsp;" . $details['name'] . "&nbsp;&nbsp;Wunschtitel:&nbsp;" . $details['wish'] . "&nbsp;&nbsp;Grußtext:&nbsp;" . $details['text'] . "</h4></marquee>\n";

                Kommentar


                • #9
                  Original geschrieben von speedway2002
                  Ich habe irgendwo gelessen das man das wieder im Script umwandeln kann...
                  Und ich hab irgendwo gelesen, dass der Nordpol nicht schmilzt, weil wir die Ozonschicht kaputt machen, sondern weil die Erde von sich aus wärmer wird~

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

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

                  Kommentar


                  • #10
                    Original geschrieben von ModestLife
                    PHP-Code:
                    $dbh->query('SET NAMES utf8;');
                    $dbh->query('SET CHARACTER_SET utf8;'); 
                    Und das verstehe ich auch nicht.
                    Wie viel Sinn macht es beide Queries abzusetzen?

                    Bei mir hat der erste bisher den Dienst gut erledigt~

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

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

                    Kommentar


                    • #11
                      Wie viel Sinn macht es beide Queries abzusetzen?
                      Gar keinen, entweder oder:
                      A SET NAMES 'x' statement is equivalent to these three statements:
                      Code:
                      SET character_set_client = x;
                      SET character_set_results = x;
                      SET character_set_connection = x;
                      A SET CHARACTER SET x statement is equivalent to these three statements:
                      Code:
                       
                      SET character_set_client = x;
                      SET character_set_results = x;
                      SET collation_connection = @@collation_database;
                      Das heißt bei SET CHARACTER SET wird die Koalition der Verbindung noch auf die Koalition der Datenbank gesetzt.
                      Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                      Kommentar


                      • #12
                        Ne, äquivalent sind sie ja eben nicht - soweit wie du war ich auch schon - wenn du mir den Unterschied jetzt aber noch in Worte fassen kannst ... hab keine Lust das Manual selbst umzuwühlen, dafür war die Nacht zu kurz

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

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

                        Kommentar


                        • #13
                          Kann ich auch noch machen: character_set_client und character_set_results sind für die Ein- (client) und Ausgaben (results) zuständig. Der Server übersetzt die Eingaben (über Querys) dann in character_set_connection, für die Sortierung wird intern außerdem collation_connection benutzt. Für die Ausgabe von Ergebnissen und Fehler wird dann wiederum character_set_results benutzt. Wenn man collation_connection setzt wird der Zeichensatz (character_set_connection) automatisch auf mit gesetzt. Praktisch reicht SET CHARACTER SET also aus. Wenn man nur SET NAMES benutzt wird die Koalition der Datenbank oder der Tabelle benutzt.
                          Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                          Kommentar


                          • #14
                            Ich habe es mal so Probiert ich versuche es ja aber ich bekomme das nicht hin denke das auch falsch....

                            $suchmuster[0] = 'ä';
                            $ersetzungen[0] = 'Ä'

                            preg_replace($suchmuster, $ersetzungen, $details['name']);

                            echo "<marquee><h4>W&uuml;nscher:&nbsp;" . $details['name'] . "&nbsp;&nbsp;Wunschtitel:&nbsp;" . $details['wish'] . "&nbsp;&nbsp;Grußtext:&nbsp;" . $details['text'] . "</h4></marquee>\n";

                            Kommentar


                            • #15
                              Vergiss doch das scheiß Ersetzen...
                              Die richtige Lösung wurde gepostet (SET NAMES). Setze sie um und werde glücklich.

                              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