it-swarm.com.de

Seltsame Charaktere - obwohl alles UTF-8 ist

Ich bin mir nicht sicher, warum dieser Thread geschlossen wurde , aber dies ist das gleiche Problem, das viele Menschen betrifft.

Alle meine WP Konfigurationseinstellungen sind in Reihenfolge:

//define('DB_CHARSET', 'utf8');
//define('DB_CHARSET', 'utf8_unicode_ci');
//define('DB_COLLATE', '');

Ich habe sogar versucht, sie einzeln zu aktivieren. Keiner hat funktioniert.

Wenn ich einen Beitrag speichere, erscheinen seltsame Zeichen anstelle von Apostrophen und Leerzeichen. Dies geschieht unabhängig davon, ob ich Inhalte manuell oder manuell eingebe

Ich habe ein paar Plugins ausprobiert.

  1. UTF-8 Desinfizieren
  2. Konvertieren Sie WP in UTF-8

..usw.

Keiner von ihnen funktioniert. Das Problem besteht weiterhin.

Ich habe auch den Zeichensatz und die Sortierung der Datenbank in MYSQL geändert. Bildschirmfoto:

MySQL tables/columns are all utf-8

Dies ist ein Screenshot von mir, wie ich Inhalte durch Einfügen eingebe:

Text is fine when entering it in the WP UI

Aber sofort nach dem Speichern kommt der Text mit verstümmelten Zeichen zurück, die ihn ersetzt haben:

Annoying garbled characters

Was sonst?

Ich habe die gesamte MySQL-Datenbank gesichert und dann alle älteren Nicht-UTF8-Zeichen per TR-Befehl entfernt.

tr -cd '\11\12\15\40-\176' < file-with-binary-chars > clean-file

Wo der file-with-binary-chars war der MySQL Dump. Dann habe ich den Tisch restauriert.

Meine MySQL-Konfiguration ist alles utf8:

[client]
default-character-set=utf8

[mysqld]
character-set-client=utf8
collation-server=utf8_unicode_ci
character-set-server=utf8

Mein Browser ist Chrome. Die Codierung ist UTF-8 (im Menü VIEW).

Was kann ich sonst noch tun? Muss ich auch alle Plugin-Dateien utf-8 machen?

Zu Ihrer Information, dieser Blog ist einer der Wordpress-Blogs. Es gibt andere neuere Wordpress-Installationen auf demselben Server, die dieselbe Installation von MySQL 5.6.17 verwenden, aber sie haben kein solches Problem. Ich vermute, dass dies ein älteres Blog ist, das einige Variationen im vor langer Zeit eingegebenen Text aufweist, aber ehrlich gesagt, weiß ich nicht, was ich sonst noch tun kann.

Vielen Dank für alle Eingaben oder Hinweise!

4
PKHunter

Dies wird normalerweise verursacht, wenn Sie MS Word-Informationen in den WordPress-Inhaltseditor kopieren/einfügen. WordPress verwendet über die Funktion wptexturize () sogenannte "Smart Quotes".

Ideale Lösung

Die ideale Lösung wäre, Ihre Inhalte noch einmal durchzugehen und alle einfachen/doppelten Anführungszeichen mit der Tastatur zu ersetzen.

Wenn Sie jedoch mit massiven Kopien/Pasten arbeiten, ist dies möglicherweise nicht möglich.

Deaktiviere wptexturize () Filter

Eine andere Möglichkeit ist, den Filter wptexturize() am Laufen zu hindern. Dies kann erreicht werden, indem Sie den folgenden Code in die Datei functions.php Ihres untergeordneten Themas einfügen:

remove_filter('the_content', 'wptexturize');

Sie können den Filter auch aus Kommentaren und/oder Auszügen entfernen:

remove_filter('comment_text', 'wptexturize');
remove_filter('the_excerpt', 'wptexturize');

Oder für Titel:

remove_filter ('single_post_title', 'wptexturize');
remove_filter ('the_title', 'wptexturize');
remove_filter ('wp_title', 'wptexturize');

Datenbank bereinigen

Für vorhandenen Inhalt, der die "seltsamen" Zeichen bereits in der Datenbank gespeichert hat; Möglicherweise müssen Sie die Datenbank bereinigen, indem Sie die folgenden Abfragen von PHPMyAdmin ausführen (stellen Sie sicher, dass Sie zuerst eine Datenbanksicherung durchführen):

UPDATE wp_posts SET post_content = REPLACE(post_content, '“', '“');
UPDATE wp_posts SET post_content = REPLACE(post_content, 'â€', '”');
UPDATE wp_posts SET post_content = REPLACE(post_content, '’', '’');
UPDATE wp_posts SET post_content = REPLACE(post_content, '‘', '‘');
UPDATE wp_posts SET post_content = REPLACE(post_content, '—', '–');
UPDATE wp_posts SET post_content = REPLACE(post_content, '–', '—');
UPDATE wp_posts SET post_content = REPLACE(post_content, '•', '-');
UPDATE wp_posts SET post_content = REPLACE(post_content, '…', '…');

Plugins

Nun ... es ist WordPress. Sie können jederzeit ein Plugin verwenden, um den Filter wptexturize() zu verwalten. Schauen Sie in Diese Liste nach, ob eine für Sie geeignet ist.

6
josh

Ich hatte genau das gleiche Problem.

Ich habe alles versucht, genau wie du, und am Ende habe ich noch eine letzte Sache versucht.

Die Datei DB_CHARSET in wp-config wurde in latin1 geändert.

Und es hat funktioniert: /

define('DB_CHARSET', 'latin1');
define('DB_COLLATE', 'utf8mb4_general_ci');
2
vs_lala

Folgendes hat es für mich behoben, also hier posten zu teilen. Obwohl ich die vorgeschlagenen SQL-Updates ausgeführt habe, wurden mir immer noch die lustigen Symbole vor den Links "Mehr lesen" angezeigt.

Ich bin total geschockt. Nach stundenlangem Ausprobieren und Testen habe ich im Folgenden die Option "Einstellungen" und dann "Messwerte" gefunden: "Codierung für Seiten und Feeds". Nach dem Wechsel von UTF-7 zu UTF-8 sieht alles wieder gut aus.

 enter image description here 

Und noch seltsamer ist, dass die Option von der Seite verschwindet, nachdem sie in UTF-8 geändert wurde. Laut WordPress-Site wurde diese Option seit Release 3.5 entfernt.

1
NealWalters

Das Problem kann durch die Plugins und direkte FTP-Uploads verursacht werden.

Hier ist das Detail:

http://iiiji.com/wordpress-appearing-weird-characterscode/

0
Dennis Cho