• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage Website - zeitlich willkürlich falsche Sonderzeichen trotz UTF8 | ü, ö

Status
Für weitere Antworten geschlossen.

chacky33

Neues Mitglied
Hallo liebe html-Community

ich hoffe ich bin im richtigen Unterforum gelandet.
Undzwar kämpfe ich schon geraumer Zeit mit dem Problem der falschen Darstellung von Texten auf diversen Unterseiten meiner Website. Es geht um die Sonderzeichen bzw. Umlaute.

Ich nutze Wordpress und in der wp-config ist UTF8 definiert.
define('DB_CHARSET', 'utf8mb4');

Auch wenn ich mir den Quellcode der Seiten angucke steht
meta charset="UTF-8

Jedoch wird vom Browser ein anderer genutzt.
Firefox zeigt mir die Textcodierung "windows-1252" an. Der Internet Explorer zeigt "Westeuropäisch ISO" an.

Ein weiteres Phänomen ist das sich die Darstellung von Tag zu Tag ändert:

In der Vergangenheit:
  • In Firefox: Hauptseite + Unterseite A werden korrekt dargestellt. Unterseite B + C sind falsch.
  • In IE oder Smartphone: Hauptseite + Unterseite A werden FALSCH dargestellt. Unterseite B + C sind korrekt.
Aktuell:
Und aktuell wird in Firefox sogar alles falsch dargestellt und auf dem Smartphone (Android) wird alles richtig dargestellt.
Auf dem Macbook mit Safari werden einige korrekt und einige wieder falsch dargestellt.

Ich habe selber bisschen recherchiert, doch habe ich bisher noch keiine Lösung gefunden, als das charset umzustellen. Doch das hat nicht geholfen.
Ich habe bei einigen Lösungsansätzen MyPHP gelesen, doch habe ich mich daran noch nicht getraut.

Habt ihr vielleicht Tips oder Lösungsvorschläge was ich vorher noch Prüfen könnte um das Problem zunächst zu identifizieren?

Vielen Dank schonmal
Grüße
chacky

Zur Website:
Host: Strato
CMS: Wordpress
Filezilla vorhanden
Zugang zu phpMyAdmin über Strato vorhanden
 
An irgendeiner Stelle wurde nicht konsequent auf UTF-8 eingestellt. Entweder die DB selber, die Felder in den Tabellen, die Verbindung oder die PHP-Datei selber ist nicht im UTF-8 Format gespeichert.
 
Hallo m.scatello,

vielen Dank für die Antwort. Damit kann ich schonmal was anfangen.
Dazu habe ich noch ein paar Fragen.

1) Bezüglich der PHP-Datei:
Wenn ich das richtig verstehe muss ich alle PHP-Dateien mit beispielsweise Notepad++ öffnen und im UTF-8 Format speichern?
Oder gibt es bestimmte PHP-Dateien (in der Ordner-Hierarchie) die ich bearbeiten müsste

2)Bezüglich der DB und Felder in den Tabellen:
Das heißt ich muss alles in der DB umstellen?
Ich habe folgende Anleitung gefunden, ist so etwas der richtige Ansatz?
http://blog.markusgiesen.de/2007/07/29/typo3-mysql-datenbank-auf-utf-8-umstellen/

Ich habe mal ein Screenshot von meiner Datenbank gemacht. Bei der Kollation sieht es sehr wüst aus, ist das schon der Grund für die fehlerhafte Anzeige?
Falls ja, was wäre der nächste Schritt? Kommen da SQL-Befehle ins Spiel (kenne mich da wie gesagt nicht aus)
phpMyAdmin.JPG
Grüße
 
Zuletzt bearbeitet:
Zu 1)
Das solltest du zumindest kontrollieren. Wordpresss-Dateien sind eigentlich im UTF-8 Format- Ob das auch bei deinem Theme zutrifft, musst du dir ansehen.

Zu 2)
Wieso ist das so ein Chaos?
 
Ja das kann ich mir leider auch nicht erklären.
Es war ja mal alles richtig, bzw ich hatte mir meine Datenbank nie angeguckt, weil alles funktioniert hatte.
Kann sowas durch Wordpress Updates und Plugins kommen?

Die Frage ist, wie löse ich am besten das Problem?
Öffne ich die entsprechende Tabelle, gehe auf Operationen und ändere alles Händisch zu "utf8_general_ci", oder gibt es einen anderen Workflow?

Grüße
 
Ich würde einen Export durchführen, die "Create Table" anpassen, die Tabellen löschen und dann importieren.
 
So ich habe nun einen Export durchgeführt und würde jetzt die "Create Tables" anpassen.

Nun stellt sich die Frage, zu was ich das umänder.

Habe folgende unterschiedliche Create Tables entdeckt:

1) CREATE TABLE IF NOT EXISTS `wp_revslider_static_slides` (
`id` int(9) NOT NULL,
`slider_id` int(9) NOT NULL,
`params` longtext COLLATE latin1_german1_ci NOT NULL,
`layers` longtext COLLATE latin1_german1_ci NOT NULL,
`settings` text COLLATE latin1_german1_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;

2) ENGINE=InnoDB AUTO_INCREMENT=53 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

3)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;

4) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;

Zu 1) Muss ich jetzt alles, was sich in der Klammer befindet umändern zu utf8? Oder findet die Änderung nur im "CHARSET=" und "COLLATE" statt.
bei 4) ist beispielsweise gar kein "COLLATE", heißt das das ich eigentlich bei 1), 2) und 3) nur CHARSET umändern sollte?

Und generell: Sollte da einfach nur utf8 stehen, oder utf8mb4_unicode_ci oder wie bei dir utf8_unicode_ci

Sorry für die vielen Fragen, aber bin da echt unsicher und will es lieber richtig machen.

Grüße
 
Ich glaube das kam von einem auf den anderen Tag nach einem automatische Wordpress-Update. Zumindest ist es mir danach aufgefallen.

Was mir beisipelsweise am Wocheende passiert ist, als es wieder ein Update gab, war das meine ganze rechte Sidebar mit den Widgets verschwunden war, welche ich manuell wieder hinzugefügt habe.

Ok, also wenn ich das richtig verstanden habe, lösche ich überall das das "Collate" und ändere das "CHARSET zu utf8.
Alles was sich innerhalb befindet lasse ich erstmal so wie es ist?

Vielen Dank
 
Oh tut mir Leid, ich wusste nicht dass es nicht erlaubt ist. Ich dachte ich versuche mir über mehrere Quellen Lösungsansätze zu finden um einfach mehr von der Thematik zu verstehen :(
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben