Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Umlaute ausgeben

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Umlaute ausgeben

    Hallo zusammen,
    ich habe folgendes Problem:
    In meinem Formular werden Umlaute immer als solche komischen Zeichen ausgegeben, also ü anstatt ü. Ich weiß, dass die Frage schon tausendmal gestellt wurde. Folgendes habe ich bis jetzt geändert, ohne Erfolg:
    1.) <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    2.) Datenbank komplett auf utf8_general_ci umgestellt.
    3.) Dateien auf Kodierung UTF-8 gestellt

    Ich habe drei Dateien, eine für das Frontend, eine für das Backend und eine für die gemeinsam verwendeten Funktionen zu Abfragen in der Datenbank.
    In der Datei von FE und BE wird die Datei mit den Funktionen eingebunden.
    Ich nutze im FE und BE also grundsätzlich die gleichen Funktionen, daran sollte es nicht liegen. Was mich wundert ist, dass im Backend alles richtig angezeigt wird, nur im FE nicht, wobei die obengenannten Schritte ja für beide Dateien wirken.

  • #2
    Als erstes würde ich schauen was der Browser für einen Zeichensatz erkannt hat. Bei Firefox: Ansicht -> Zeichenkodierung.

    Wenn du die oben genannten Schritte gemacht hast, dann kann es IMHO nur an den HTTP-Headern liegen. Diese kannst du mit entsprechenden Browserplugins ansehen.

    Entweder sendet dein Code auf dem Server (PHP?) einen falschen Header oder du hast bspw. eine htaccess-Datei die dieses auslöst. Wenn beides nicht der Fall ist, dann wird das Problem vermutlich in der Webserver-Config liegen.

    Kommentar


    • #3
      Firefox sagt: Unicode(UTF-8 )
      Firebug sagt zum Header:<meta content="text/html; charset=utf-8" http-equiv="content-type">

      Meine HTACCESS:
      ErrorDocument 401 "Passwortgeschuetzter Bereich (Fehler 401)

      ErrorDocument 403 "Zugriff verweigert (Fehler 403)

      ErrorDocument 404 http://jufo.lms-sh.de/?cmd=error_404

      ErrorDocument 500 "Server-Fehler (Fehler 500)

      Options -Indexes


      #PHP3 Endung: .php3
      AddType application/x-httpd-php3 .php3

      #PHP4 Endung: .php4
      AddType application/x-httpd-php4 .php4

      #PHP5 Endung: .php .php5
      AddType application/x-httpd-php5 .php .php5


      Das ganze läuft noch auf XAMPP, neuste Version.

      Edit: Seite hochgeladen, ihr findet sie unter http://jufo.lms-sh.de

      Kommentar


      • #4
        Ich habe ein ähnliches Problem beim erstellen einer komplett neuen Webseite.

        Habe folgendes in meinem Code

        in der ersten Zeile der Indexseite:

        Code:
        header('Content-Type: text/html; charset=utf-8');
        sowie in dem Metaangaben:

        Code:
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        Firefox sagt mir unter "Seiteninformation -> Kodierung: UTF-8"

        Dennoch werden Sonderzeichen sowohl im Title wie auch im Text (fest codiertes Wort, also keine Datenbankverbindung, z.B. "Bänker") nicht korrekt dargestellt, sondern das "ä" z.B. als schwarze Raute mit weißem Fragezeichen.

        Daber müsste ich doch eigentlich durch das "header" den Server zwingen utf-8 zu senden und dem Brwoser dies ebenfalls mitteilen durch die meta-descrp

        Was mache ich falsch?

        edit:
        Wenn ich die Zeichencodierung im Firefox auf Westlich-Iso ... setze, wird es richtig angezeigt? Dabei sollte das doch gerade durch UTF-8 sauberer sein?

        Kommentar


        • #5
          Normalerweise nutze ich im Script selbst immer &auml;,&ouml;, ...
          Ich das mal ersetzt und im Quelltext ein ä stehen, das wird korrekt dargestellt.

          Edit: Es liegt definitiv NICHT an der Ausgabe.
          In der Datenbank werden die Zeichen schon so dargestellt, wenn ich da ein ä mit PHPMyadmin reinschreibe wird es auch richtig angezeigt.

          Edit2:
          Nach der Änderung in der Datenban wird es im Backend nicht mehr richtig angezeigt.
          Die Ausgabe ist jetzt bei allen Sonderzeichen �.

          Edit3:
          Ich habe in der Funktion zum Ändern der Einträge in der Datenbank folgendes eingatragen:
          PHP-Code:
          $text utf8_encode($text); 
          Jetzt sehen die Texte (ÄÄÄÖÖÖÜÜÜäääöööüüü) so aus:
          BE-Eingabeformular: ÄÄÄÖÖÖÜÜÜäääöööüüü
          FE-Anzeigeseite: ÄÄÄÖÖÖÜÜÜäääà ¶Ã¶Ã¶Ã¼Ã¼Ã¼

          PHPMyAdmin:
          ÄÄÄÖÖÖÜÜÜäääà ¶Ã¶Ã¶Ã¼Ã¼Ã¼

          Zeichenkodierung immer noch UTF-8

          Kommentar


          • #6
            Das ist alles schon hundert mal durchgekaut worden. Bitte lies dir das hier mal durch und prüfe deine Scripte entsprechend:

            Die 5 goldenen Regeln für UTF-8 in PHP/MySQL und HTML:
            http://www.php.de/datenbanken/55699-...tml#post430223

            Der ultimative Megakick der Superlative
            http://www.php.de/adventskalender-20...perlative.html
            [PHP]if ($var != 0) {
            $var = 0;
            }[/PHP]

            Kommentar


            • #7
              PHP-Code:
              mysql_query("SET NAMES 'utf8'"); 
              EDIT: zu spät

              Kommentar


              • #8
                Vielen dank!

                Datenbank utf8_bin
                PHP-Header:
                PHP-Code:
                header("Content-type:text/html; charset=utf-8"); 
                Meta-Angabe:
                Code:
                <meta http-equiv="content-type" content="text/html; charset=utf-8" />
                direkt nach dem Aufbau der Datenbankverbindung:
                PHP-Code:
                mysql_query("SET NAMES 'utf8'"); 
                Dateicodierung: UTF-8

                Es funktioniert immer noch nicht.
                Zitat von Chriz
                Wenn nun weiterhin falsche Zeichen dargestellt werden, wurde mindestens ein Punkt nicht beachtet, oder es sind bereits fehlerhafte Daten aus der Datenbank, einer Datei oder dem PHP-Skript/HTML-Seite eingebunden oder durch eine Konvertierung der Maßnahmen erzeugt worden.
                Also, m.E. alle Punkte beachtet.
                Dann muss ich jetzt den Fehler suchen?

                Edit: Fehler gefunden. Irgendwer hat um alle Ausgaben utf8_encode() geschrieben. Also Fehler in de Konvertierung.

                Vielen Dank nochmal für die Hilfe!

                Kommentar

                Lädt...
                X