Nach update auf 4.2.1 keine Umlaute mehr speicherbar

  • hallo,
    ich habe auf zwei Blogs ein seltsames verhalten:
    Nachdem ich die Blogs auf 4.2.1 geupdatet habe, werden beim Erstellen und Ändern von Beiträgen und Seiten die kompletten Texte entfernt, wenn Umlaute oder "" enthalten sind.
    Kennt jemand das Problem?

    Beispiel:
    Neuen Beitrag erstellen.
    Titel: DEMO
    Text: Demo 123 Demo 123 -> speichern ... geht ohne Probleme.

    Beitrag ändern oder neu erstellen:
    Titel: DEMO1
    Text: Demo ü Demo ä -> speichern ...

    der Text verschwindet und bei Wortanzahl steht 0


    Vor dem Update auf 4.2.1 ging es auf beiden Blogs ohne Probleme

    lg

    Kaiman

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Nachdem ich die Blogs auf 4.2.1 geupdatet habe, werden beim Erstellen und Ändern von Beiträgen und Seiten die kompletten Texte entfernt, wenn Umlaute oder "" enthalten sind.

    Kann ich nicht bestätigen. Ein Beitrag mit dem Text "Wäre der Jäger jünger, hätte der Kläger Dünger." kann problemlos veröffentlicht werden. WordPress 4.2.1 getestet mit Theme Enfold und Twenty Fifteen.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Hast du als Zeichensatz noch ISO verwendet? Konnte das Problem nur im Titel nachvollziehen. Da Wordpress den verwendeten Zeichensatz in der Funktion htmlspecialchars nicht mit übernimmt, wird nach dem Speichern der komplette Text nicht mehr angezeigt.

    btw... ich kann nirgends 4.1.2 auf deutsch finden

  • Hast du als Zeichensatz noch ISO verwendet? Konnte das Problem nur im Titel nachvollziehen. Da Wordpress den verwendeten Zeichensatz in der Funktion htmlspecialchars nicht mit übernimmt, wird nach dem Speichern der komplette Text nicht mehr angezeigt.

    Bezüglich des Zeichensatz;
    Vielleicht hängt das ja mit der Aussage auf dem Blog bei wordpress.org zusammen?

    Zitat

    utf8mb4 support

    Database character encoding has changed from utf8 to utf8mb4, which adds support for a whole range of new 4-byte characters.


    Kann ja sein, dass dies bei einigen Datenbanken für Probleme sorgt, obwohl es das eigentlich nicht sollte. Ist aber nur eine Vermutung.

    Bitte keine Fragen per PM, oder Foren-Chat. Für Fragen ist das öffentliche Forum da. Meine Uerdinger Seite

    Einmal editiert, zuletzt von Marcus[IS] (28. April 2015 um 11:00)

  • Mein Zeichensatz:
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    Habe gerade noch einmal etwas getestet: Wenn ich "nur Text" eintrage und den umlaut maskiere: also &uuml; statt ü kann ich speichern und der inhalt bleibt erhalten.
    Der Umlaut wird dann korrekt gespeichert,

  • Hallo,

    ich habe jetzt noch einmal einen ganz neuen blog aufgesetzt; auch da tritt das problem auf; dass ich keine Umlaute speichern kann ;(

    jemand ne idee woran das liegen könnte?

  • hallo,

    langsam wird es immer seltsamer ;(

    ich hab jetzt noch einen uralten blog ausgegraben und den auf 4.2.1 aktualisiert.
    da geht alles ohne probleme

    der alte und der neue blog laufen auf dem gleichen webspace mit den gleichen PHP einstellungen; auch in der WP_config konnte ich keine unterschiede feststellen ;(

    lustigerweise geht es bei dem alten, aber nicht beim neuen ...
    ich habe gerade noch einmal die kompletten 4.2.1 wordpress files über den nicht funktionierenden blog geschoben. kein erfolg ;(


    setze ich einen blog direkt unter 4.2.1 auf, gehen auch keine umlaute ... alles sehr seltsam

  • Hallo,

    so nach endlosem debugging habe ich den fehler gefunden:

    // utf8 can be handled by regex, which is a bunch faster than a DB lookup.
    if ( 'utf8' === $charset || 'utf8mb3' === $charset || 'utf8mb4' === $charset ) {
    $regex = '/
    (
    (?: [\x00-\x7F] # single-byte sequences 0xxxxxxx
    | [\xC2-\xDF][\x80-\xBF] # double-byte sequences 110xxxxx 10xxxxxx
    | \xE0[\xA0-\xBF][\x80-\xBF] # triple-byte sequences 1110xxxx 10xxxxxx * 2
    | [\xE1-\xEC][\x80-\xBF]{2}
    | \xED[\x80-\x9F][\x80-\xBF]
    | [\xEE-\xEF][\x80-\xBF]{2}';

    if ( 'utf8mb4' === $charset) {
    $regex .= '
    | \xF0[\x90-\xBF][\x80-\xBF]{2} # four-byte sequences 11110xxx 10xxxxxx * 3
    | [\xF1-\xF3][\x80-\xBF]{3}
    | \xF4[\x80-\x8F][\x80-\xBF]{2}
    ';
    }

    $regex .= '){1,50} # ...one or more times
    )
    | . # anything else
    /x';
    --> // $value['value'] = preg_replace( $regex, '$1', $value['value'] );
    continue;
    }

    wenn ich diese zeile (-->) auskommentiere funktioniert es;
    im debuglog steht dazu: [29-Apr-2015 08:13:14 Europe/Berlin] PHP Warning: preg_replace(): Compilation failed: repeated subpattern is too long at offset 592 in /wp-includes/wp-db.php on line 2640

    woran könnte dies liegen?

  • Hi,
    ich hatte dasselbe Problem. Mit diesem Workaround geht es nun wieder.
    Vielen Dank dafür!. Bei mir war es nachvollziehbar von 4.1.4 auf 4.1.2 mit PHP 5.5.0.
    Sollte allerdings von Wordpress gefixt werden da es nach nem Update wieder da ist.
    Wo kann man sowas denn melden?

  • Moin!

    Ich habe ein ähnliches Problem.

    Meine WP-Config enthält folgendens Setting, da das WP mit anderen Bestandteilen, der Webseite in einer DB lebt:
    define('DB_CHARSET', 'latin1');

    Einumstellen auf utf-8 bringt auch keine Abhilfe:
    define('DB_CHARSET', 'utf8');

    Bei mir werden in der wp-db.php durch die folgende Zeile (etwas über der Stelle von kaiman79) die Umlaute entfernt:
    $value['value'] = preg_replace( $regex, '$1', $value['value'] );

    Haben wir Specialisten für Endoding hier im Forum?

    Es grüßt
    derRALF

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!