Mehrsprachige Ausgabe - UTF-8 Problem

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

  • Mehrsprachige Ausgabe - UTF-8 Problem

    Hallo zusammen,
    ich habe in meiner Tabelle mehrere Sprachen abgebildet. Siehe Anlage.
    Auf der Datenbank sieht das auch wunderbar aus und wird mit phpMyAdmin abgebildet. Auf der Website krieg ich aber nur "????" angezeigt.
    Woran liegt das? Ich habe etliches versucht:
    PHP-Code:
    <?php header("Content-Type: text/html; charset=utf-8");
    ?>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="content-type" content="application/xhtml+xml;  charset=utf-8" />
    <meta charset="utf-8">
    </head>
    <body>

    <?php
     
     $link 
    mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) or die('No Connection');
     
    mysql_query('SET NAMES \'UTF-8\''$link);
     
    mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());

       
        
    $sql "SELECT * FROM test"
        
    $result mysql_query($sql) OR die(mysql_error()); 
        while(
    $row mysql_fetch_assoc($result))        
          {
              
    $Titel=$row['Chinesisch'];
                echo  
    "$Titel";
               }
     
     
    ?>
    Hat jemand einen Tipp?

    Danke.
    Angehängte Dateien

  • #2
    Stimmen die Daten in der Datenbank? Schon mal mit phpMyAdmin angeschaut? Unterstützt die gewählte Schriftart chinesische Zeichen?

    Es müsste außerdem SET NAMES 'uft8' heißen. Oder verwende gleich besser die Funktion mysql_set_charset().

    Dein Datenbankdesign ist übrigens kaputt. Mach pro Sprache nicht eine Spalte, sondern eine Zeile. Spalten sollten sich nicht verändern. Was ist aber, wenn du eine neue Sprache hinzufügst? Dann müsste ja eine neue Spalte angelegt werden.

    Die mysql_* Funktionen sind übrigens veraltet und sollten niciht mehr verwendet werden. Als Ersatz gibt es mysqli und PDO.

    Verwende niemals SELECT *, sondern gib im SELECT immer die Spalten an, die du im Ergebnis erwartest.

    Halte dich an das EVA-Prinzip. Datenbankabfragen haben inmitten der HTML-Ausgabe nichts verloren, sondern gehören in die Verarbeitung, also vor die Ausgabe.
    Zuletzt geändert von h3ll; 29.12.2014, 10:16.

    Kommentar


    • #3
      Mit phpMyAdmin sieht alles gut aus - siehe Anlage.

      Du meinst
      mysql_set_charset('utf8',$link);
      statt
      mysql_query('SET NAMES UTF-8', $link);
      ?
      Das funktioniert nicht - kein Ergebnis; leere Seite.

      Kommentar


      • #4
        Leere Seite heißt, dass es ein Fehler augetreten ist, also solltest du mal ins Fehler-Log schauen.

        Kommentar


        • #5
          "undefined function mysql_set_charset"
          Und nun? Ich komm nicht an den Server für ein PHP Update...

          Gibt es noch Ideen?

          Getestet hab ich auch:
          mysql_query("SET CHARACTER SET utf8");
          mysql_query("SET COLLATION_CONNECTION = 'utf8_unicode_ci'");
          Zuletzt geändert von webdream; 29.12.2014, 10:51.

          Kommentar


          • #6
            Du hast wohl eine steinalte PHP-Version. Wende dich an dan Serveradministrator. Es ist sehr fahrlässig eine veraltete PHP-Version produktiv zu betreiben.

            Kommentar


            • #7
              Gibt es also KEINE Lösung oder weitere Ideen was ich probieren kann?

              Kommentar


              • #8
                Du könntest noch schauen, was der W3C-Validator dazu sagt. Der überprüft auch die Kodierung und schreit, wenn der Header nicht zum Content passt.

                Was mir gerade auffällt ist, dass dein HTML-Code so oder so kaputt sein muss. Denn dir fehlt das <html> Tag und der Doctype.

                Kommentar


                • #9
                  Wenn es aber doch mit PhpMyAdmin funktioniert - warum dann nicht bei mir?

                  Kommentar


                  • #10
                    Mehr debuggen, weniger rumjammern.

                    Kommentar


                    • #11
                      SUPER! Mehr unterstützen als altklug rumtexten...

                      Vielleicht gibt es hier ja noch konstruktive Unterstützung.

                      Kommentar


                      • #12
                        Wie wäre es, wenn du erstmal machst, was man dir sagt? Wenn du nicht mitarbeitest, wird das nix. Egal wieviele Leute da mithelfen.

                        Kommentar


                        • #13
                          Für jeden der sich mit dieser Frage beschäftigen sollte, empfehle ich folgendes Forum unter php.de!! Da wird hochwertiger beraten!

                          Zeichencodierung (UTF-8) im PHP-Kontext - Cracks, erbarmt euch! - php.de

                          Kommentar


                          • #14
                            Na wenn du nicht auf die Fragen eingehst, wie soll man da beraten? Du bist echt ein Troll.

                            Und warum es nicht funktioniert (hat), weißt du wohl noch immer nicht. Also im Endeffekt hast du nichts gelernt. Herzlichen Glückwunsch!

                            Kommentar

                            Lädt...
                            X