Ankündigung

Einklappen
Keine Ankündigung bisher.

UTF-8 aus MySQL

Einklappen

Neue Werbung 2019

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

  • UTF-8 aus MySQL

    Hallo Leute, ich schonwider ...

    Ich ahbe mir eine kleines Script zur Chat auslesung geschrieben, jedoch zeigt er mir die Zeichen nich richtig als UTF-8 an. Die Tabelle steht auf Text und "utf8_bin".

    PHP-Code:
    <?php
    header
    ('Content-Type: text/html; charset=utf-8');

    $db_link mysqli_connect (
                         
    MYSQL_HOST
                         
    MYSQL_BENUTZER
                         
    MYSQL_KENNWORT
                         
    MYSQL_DATENBANK
                        
    );
    $sql_chat "SELECT * FROM (SELECT * FROM chat_log ORDER BY id DESC LIMIT 10) as tmp ORDER BY tmp.id ASC";
    $chat mysqli_query$db_link$sql_chat);

    if ( ! 
    $chat )
    {
      die(
    'Ungültige Abfrage: ' mysqli_error());
    }

    while (
    $zeile mysqli_fetch_array$chatMYSQL_ASSOC))
    {

        echo 
    "<strong>"$zeile['user'] . "</strong>";
        echo 
    "<p>"$zeile['text'] . "</p>";
    }
    ?>
    Hat jemand eine Lödung? ich weiß das es einen mysqli funktion gibt, jedoch finde ich gerade nicht genau wo ich dieses einbinden soll..?


    Herzlichen Dank


  • #2
    Klick mich
    Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

    Kommentar


    • #3
      http://php-de.github.io/jumpto/mysql-and-utf8/ (letzer Absatz)

      LG
      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        wo ich halt es einbinde ist meine frage, die db hat ja utf 8 drin.

        Kommentar


        • #5
          Die Frage würde sich von alleine erledigen, wenn du auf meinen Link geklickt hättest, den ersten Treffer genommen hättest und du dir die Beispiele angesehen hättest.
          Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

          Kommentar


          • #6
            Dieses Script eingebunden:

            PHP-Code:
            if (!mysqli_set_charset($db_link"utf8")) {
                
            printf("Error loading character set utf8: %s\n"mysqli_error($db_link));
            } else {
                
            printf("Current character set: %s\n"mysqli_character_set_name($db_link));

            sagt ich habe utf8. wieso zeigt er mir dann immernoch die � als sonderzeichen an? in der Datenbank sind sie ja eigentlich alle richtig hinterlegt.

            Kommentar


            • #7
              Zitat von Vinylarts Beitrag anzeigen
              sagt ich habe utf8. wieso zeigt er mir dann immernoch die � als sonderzeichen an? in der Datenbank sind sie ja eigentlich alle richtig hinterlegt.
              Wenn die Umlaute als Fragezeichen dargestellt werden, dann wird ein als ISO 8859-1 kodiertes Dokument als UTF-8 interpretiert,
              d.h. im Editor (z.B. Notepad++) steht bei Kodierung nicht "UTF 8 ohne BOM"!

              erwartete Ausgabe: ä ö ü
              wirkliche Ausgabe: � � �
              Mit anderen Worten wurde hier ein ä als 11100100 gespeichert. In UTF-8 ist dieses Byte jedoch ungültig, wird also nicht angezeigt oder ignoriert, bzw. als ? oder � dargestellt.

              Kommentar


              • #8
                gut. Problem ist, das ich das ganze zwar im Editor schreibe, aber als solches nicht speicher sondern via Fireball CMS ins WBB Forum einbinde.
                Laut forum ist alles auf UTF-8 gestellt. Die externe MySQL ebendfalls.
                also müsste ich einmal mit neuer MySQL das ganze testen ob es an ihr liegt?

                Kommentar


                • #9
                  Hast du es mit der SQL Abfrage versucht?
                  Code:
                  SET NAMES UTF-8
                  Benutzt du irgendein anderes Tool (Forum / PHPMyAdmin / ...) das die Daten korrekt holt?
                  Mein blog | Portfolio

                  Kommentar


                  • #10
                    die mysql ist verwaltet durch PHPMyAdmin.

                    Die sql abfrage bringt irgendwie nichts, oder ich bin zu blöd es richtig einzubinden...

                    Kommentar


                    • #11
                      mit folgendem code:

                      PHP-Code:
                      <?php
                      $db_link 
                      mysqli_connect (
                                           
                      MYSQL_HOST
                                           
                      MYSQL_BENUTZER
                                           
                      MYSQL_KENNWORT
                                           
                      MYSQL_DATENBANK
                                          
                      );

                      $sql_chat "SELECT * FROM (SELECT * FROM chat_log ORDER BY id DESC LIMIT 10) as tmp ORDER BY tmp.id ASC";

                      $chat mysqli_query$db_link$sql_chat"SET NAMES 'utf8'");

                      If (!
                      $chat) {die ("UTF-8 konnte nicht gesetzt werden");};


                      if ( ! 
                      $chat )
                      {
                        die(
                      'Ungültige Abfrage: ' mysqli_error());
                      }

                      while (
                      $zeile mysqli_fetch_array$chatMYSQL_ASSOC))
                      {

                          echo 
                      "<strong>"$zeile['user'] . "</strong>";
                          echo 
                      "<p>"$zeile['text'] . "</p>";
                      }
                      ?>

                      Gibt er mir folgende fehlermedlung:

                      Wed, 11 Feb 2015 13:29:07 +0000
                      Message: PHP warning in file C:\xampp\htdocs\cms\lib\system\content\type\PHPCon tentType.class.php(25) : eval()'d code (11): mysqli_query() expects parameter 3 to be long, string given
                      File: C:\xampp\htdocs\wcf\lib\system\WCF.class.php (303)
                      PHP version: 5.5.6
                      WCF version: 2.0.10 pl 2 (Maelstrom)
                      Request URI: /cms/index.php/gtasamp/
                      Referrer: http://www.minecraftclan.de/cms/inde...sampfahrzeuge/
                      User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:35.0) Gecko/20100101 Firefox/35.0
                      Information: ""
                      Stacktrace:
                      #0 [internal function]: wcf\system\WCF::handleError(2, 'mysqli_query() ...', 'C:\xampp\htdocs...', 11, Array)
                      #1 C:\xampp\htdocs\cms\lib\system\content\type\PHPCon tentType.class.php(25) : eval()'d code(11): mysqli_query(Object(mysqli), 'SELECT * FROM (...', 'SET NAMES 'utf8...')
                      #2 C:\xampp\htdocs\cms\lib\system\content\type\PHPCon tentType.class.php(25): eval()
                      #3 C:\xampp\htdocs\cms\lib\data\content\Content.class .php(59): cms\system\content\type\PHPContentType->getOutput(Object(cms\data\content\Content))
                      #4 [internal function]: cms\data\content\Content->getOutput()
                      #5 C:\xampp\htdocs\wcf\lib\data\DatabaseObjectDecorat or.class.php(7: call_user_func_array(Array, Array)
                      #6 C:\xampp\htdocs\wcf\templates\compiled\0_cms_1_pag e.php(441): wcf\data\DatabaseObjectDecorator->__call('getOutput', Array)
                      #7 C:\xampp\htdocs\wcf\templates\compiled\0_cms_1_pag e.php(441): cms\data\content\ContentNode->getOutput()
                      #8 C:\xampp\htdocs\wcf\lib\system\template\TemplateEn gine.class.php(324): include('C:\xampp\htdocs...')
                      #9 C:\xampp\htdocs\wcf\lib\page\AbstractPage.class.ph p(205): wcf\system\template\TemplateEngine->display('page', 'cms')
                      #10 C:\xampp\htdocs\cms\lib\page\PagePage.class.php(20 6): wcf\page\AbstractPage->show()
                      #11 C:\xampp\htdocs\wcf\lib\page\AbstractPage.class.ph p(86): cms\page\PagePage->show()
                      #12 C:\xampp\htdocs\wcf\lib\system\request\Request.cla ss.php(5: wcf\page\AbstractPage->__run()
                      #13 C:\xampp\htdocs\wcf\lib\system\request\RequestHand ler.class.php(10: wcf\system\request\Request->execute()
                      #14 C:\xampp\htdocs\cms\index.php(9): wcf\system\request\RequestHandler->handle('cms')
                      #15 {main}

                      Kommentar


                      • #12
                        Brain an. und schon hab ich es:

                        PHP-Code:
                        <?php
                        $db_link 
                        mysqli_connect (
                                             
                        MYSQL_HOST
                                             
                        MYSQL_BENUTZER
                                             
                        MYSQL_KENNWORT
                                             
                        MYSQL_DATENBANK
                                            
                        );

                        $sql_chat "SELECT * FROM (SELECT * FROM chat_log ORDER BY id DESC LIMIT 10) as tmp ORDER BY tmp.id ASC";
                        mysqli_set_charset($db_link,"utf8");

                        $chat mysqli_query$db_link$sql_chat);



                        if ( ! 
                        $chat )
                        {
                          die(
                        'Ungültige Abfrage: ' mysqli_error());
                        }

                        while (
                        $zeile mysqli_fetch_array$chatMYSQL_ASSOC))
                        {

                            echo 
                        "<strong>"$zeile['user'] . "</strong>";
                            echo 
                        "<p>"$zeile['text'] . "</p>";
                        }
                        ?>

                        Kommentar

                        Lädt...
                        X