Problem mit UTF-8

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

  • Problem mit UTF-8

    Folgendes Problem:

    Seite (http://duestermodels.de) komplett in UTF-8 erstellt, auch die Verbindung zur DB ist UTF-8, auch die Kollation als UTF-8 gesetzt.

    Nun tauchen bei manchen Einträgen der Benutzer die Sonderzeichen als kryptische Zeichen auf.

    Beispiel: http://duestermodels.de/zeige-sedcard-504.html

    Nur ist das nicht bei allen Sonderzeichen so, nur bei manchen. Andere User können Sonderzeichen verwenden, ohne das es zu sonderbaren Anzeigen kommt.

    Wer hat eine Idee, woran das liegen kann?

  • #2
    Prüfe über PMA ob die Daten bereits fehlerhaft in der DB stehen.

    Ist das der Fall, musst du deine Eingabe-Formulare überprüfen.

    Hier wäre auch mal Link (+ggf. Logindaten) zu dem entsprechenden Formular (oder zumindest ein Screenshot) interessant.

    Kommentar


    • #3
      Es sind alle Files (php und Templates) als UTF-8 gespeichert. Brauche ich bei jedem Form ein accept-charset="UTF-8" oder kann man das weglassen?

      Selbst im PMA sehe ich komische Zeichen.

      Kommentar


      • #4
        ist nicht zwingend erforderlich, wenn die Seite schon den Zeichensatz hat.

        Bitte noch den Rest nachreichen, sonst kann ich dir nicht helfen.

        Kommentar


        • #5
          Kann ich Dir die Logindaten auch außerhalb des Forums schicken, da ich keinen Testacc habe, nur einen, der da auch aktiv ist.

          Kommentar


          • #6
            Klar, nimm meinen E-Mail Button.

            EDIT:
            Da die Zugangdaten keine Berechtigung haben und du keine gültige E-Mail Adresse angegeben hast, hilft uns das leider nicht weiter.

            Vielleicht richtest du mal einen öffentlichen Testaccount ein.

            Zuletzt geändert von TobiaZ; 12.09.2008, 19:21.

            Kommentar


            • #7
              Hab meine Email angepasst, hatte ich voll versemmelt. Den Anbieter gibt es nicht mehr.

              Kommentar


              • #8
                Vielleicht musst du MySQL noch sagen, dass du UTF-8 Zeichen in die DB einträgst?
                Code:
                mysql_query("SET NAMES 'utf8'");
                mysql_query("SET CHARACTER SET 'utf8'");

                Kommentar


                • #9
                  Ich habe folgendes direkt nach dem Aufbau der Verbindung drinnen stehen:

                  Code:
                  mysql_query('SET NAMES "UTF8"');
                  mysql_query("SET collation_connection='utf8_general_ci'");
                  mysql_query("SET collation_server='utf8_general_ci'");
                  mysql_query("SET character_set_client='utf8'");
                  mysql_query("SET character_set_connection='utf8'");
                  mysql_query("SET character_set_results='utf8'");
                  mysql_query("SET character_set_server='utf8'");

                  Kommentar


                  • #10
                    Und wie siehts mit dem Webserver aus? macht er das?

                    ist nicht immer gegeben, vielleicht solltest du mal spaßeshalbes eine .htaccess anlegen mit folgendem Inhalt

                    Code:
                    AddDefaultCharset UTF-8
                    AddCharset utf-8 .css .html .xhtml
                    Ansonsten hab ich im Moment keine Idee was noch in die Suppe spucken könnte
                    [color=blue]MfG Payne_of_Death[/color]

                    [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
                    [color=red]Merke:[/color]
                    [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

                    Murphy`s Importanst LAWS
                    Jede Lösung bringt nur neue Probleme
                    Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
                    In jedem kleinen Problem steckt ein großes, das gern raus moechte.

                    Kommentar


                    • #11
                      Die .htaccess hab ich schon oben, von Anfang an.

                      Kommentar


                      • #12
                        So, meine Vermutung hat sich wahrscheinlich bestätigt. Der angeragte Screenshot hätte dafür vollkommen gereicht.

                        Du hast nämlich ein DropDown für die Auswahl des Landes. Wenn dort der Wert schon falsch drin ist, brauchst du dich natürlich nicht zu wundern, dass er danach auch falsch eingetragen oder angezeigt wird.

                        Also einfach Einträge in der Datenbank korrigieren und glücklich sein.

                        Treten sonst noch Probleme auf, die sich so nicht lösen lassen?

                        Kommentar


                        • #13
                          Die Probleme treten auch beim manuellen Eintragen von Daten auf, siehe die Anfragen und in der Sedcard die Daten selber, die in den Textareas stehen.

                          EDIT:

                          Die Daten in der DB stimmen, siehe Screen. http://duestermodels.de/temp/2008-09-13_193314.jpg



                          Zuletzt geändert von uspri; 13.09.2008, 19:36.

                          Kommentar


                          • #14
                            Na toll, das hatte ich ja nur als aller erstes prüfen lassen:
                            Original geschrieben von uspri
                            Selbst im PMA sehe ich komische Zeichen.


                            Naja, dann musst du wohl oder übel noch mal die Verbindung prüfen. Zumindest im internen Bereich scheint das noch nicht korrekt zu sein. Wenn die Daten in der DB richtig sind, aber im Formular (auf der HTML-Seite) nicht so dargestellt werden, wird dort der Fehler liegen.

                            EDIT:
                            Poste mal bitte den Dump von der Ländertabelle.

                            Kommentar


                            • #15
                              Hier der gewünschte Dump:

                              Code:
                              --
                              -- Tabellenstruktur für Tabelle `laender`
                              --
                              
                              CREATE TABLE IF NOT EXISTS `laender` (
                                `kuerzel` varchar(10) collate utf8_unicode_ci NOT NULL default '',
                                `land` varchar(150) collate utf8_unicode_ci NOT NULL default '',
                                UNIQUE KEY `kuerzel` (`kuerzel`)
                              ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
                              
                              --
                              -- Daten für Tabelle `laender`
                              --
                              
                              INSERT INTO `laender` (`kuerzel`, `land`) VALUES
                              ('de', 'Deutschland'),
                              ('at', 'Österreich'),
                              ('ch', 'Schweiz'),
                              ('lu', 'Luxemburg'),
                              ('li', 'Fürstentum Liechtenstein'),
                              ('be', 'Belgien'),
                              ('nl', 'Niederlande'),
                              ('it', 'Italien'),
                              ('cz', 'Tschechien'),
                              ('sk', 'Slowakei'),
                              ('hu', 'Ungarn'),
                              ('bu', 'Bulgarien');

                              Kommentar

                              Lädt...
                              X