[TYPO3-german] GELÖST Re: TPYO3 4.5.x: umlaute ä ö ü plötzlich als ä ö ü

Stephan Bernhard grac at gmx.ch
Tue Mar 4 09:42:34 CET 2014


@peter

danke für deine ausführliche und nachvollziehbare erklärung.

in meinem fall war das allerdings anders. die beiden parameter

$TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8';
$TYPO3_CONF_VARS['SYS']['setDBinit']  = 'set names utf8;';

waren immer schon gesetzt.
die mySQL-db war auf utf-8 gesetzt, ebenfalls immer schon.

aber was nun geschehen war:
der webhoster hat in den letzten tagen automatisch umgestellt von PHP 
5.3 auf PHP 5.4.
damit wurde die doppelte codierung ausgelöst, bei bestehender korrekter 
utf-8 konfiguration.
aber eben: ich hatte noch eine TYPO3 version unter 4.5.32.

dieses vorgehen hat mein problem gelöst:
zurück zu PHP 5.3, dann update auf TYPO3 4.5.32 als vorbereitung auf PHP 
5.4.

der nächste schritt wird dann sein:
wieder auf PHP 5.4 umschalten.

nun, ich finde tatsächlich, dass solche unverträglichkeiten resp. 
veränderungen irgendwo stehen müssten.
vor allem, weil die unterschiedlichen webhoster ja ganz unterschiedlich 
umgehen mit der jeweiligen PHP-version.
in meinem fall kann ich eingreifen, aber das ist längst nicht bei allen 
webhostern der fall.

gruss und dank
stephan


On 03.03.2014 19:09, Peter Linzenkirchner wrote:
> Hallo Stephan,
>
> das muss eigentlich nirgends stehen ... das sich alte Programme u. U. nicht mit aktuellem PHP vertragen, das ist doch immer so.
>
> Vermutlich liegt aber der Wurm gar nicht in der verwendeten PHP-Version, sondern in der Datenbank-Verbindung! Die erfolgt wohl in der PHP-Version 5.3 in latin und in 5.4 in utf-8. Deine seltsamen Zeichen deuten nämlich auf eine doppelte UTF-8 Kodierung hin. Typischerweise das Problem, wenn in TYPO3 im Install-Tool
> $TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8';
> gesetzt wurde, ohne
> $TYPO3_CONF_VARS['SYS']['setDBinit']  = 'set names utf8;';
> gleichzeitig zu setzen. Das ist ein Fehler, der zu falsch kodierten Daten in der Datenbank führt.
>
> Dann werden in älteren PHP-Versionen nämlich utf-8-Daten über eine Latin-Verbingung zur Datenbank gesendet. MySQL aber erwartet bei einer latin-Verbindung aber latin-Daten und speichert deine utf-8-Daten als latin-Zeichen ab - jedes utf-Zeichen als zwei latin-Zeichen. Das klappt, solange die Verbindung weiter latin bleibt. Beim Wechsel des PHP hat sich diese wahrscheinlich geändert auf utf-8 und jetzt funktioniert das Zusammenspiel nicht mehr. Du bekommst jetzt doppelt utf-8-kodierte Daten: ä ö ü
>
> Schnelle Abhilfe wäre u. a.:
> $TYPO3_CONF_VARS['SYS']['setDBinit']  = 'set names latin1;';
> Aber das ist nicht sehr gut, weil damit ein falsche Konfiguration weiter fortgeschrieben wird. Das fliegt dir spätestens bei Version 6.x um die Ohren. Besser ist es, die Datenbank als latin zu exportieren, danach alle  latin1 in der Datenbank nach utf8 ändern (innerhalb von SET NAMES latin1 oder DEFAULT Max. CHARSET latin1) und die gleichen Daten als utf-8 erneut zu importieren.
>
> Das ist ein bekanntes Problem, und hat mich ziemlich gefuxt beim Umstieg auf 4.1 oder 4.2. Schön hier erklärt:
>
> http://ducrot.wordpress.com/2010/06/04/utf-8-umstellung-oder-reparatur-eines-vorhandenen-typo3-systems/
>
> Gruß
> Peter
>
>
> Am 03.03.2014 um 18:26 schrieb Stephan Bernhard <grac at gmx.ch>:
>
>> für alle, die dasselbe problem haben:
>>
>> TYPO3 versionen unter 4.5.32 vertragen sich offenbar nicht mit PHP version 5.4 (wo steht dieser hinweis denn in der TYPO3-community? ich hab ihn von meinem webhoster erhalten)
>>
>> also: entweder zurück auf PHP 5.3 oder update auf TYPO3 4.5.32
>>
>> stephan
>>
>>
>>
>> On 02.03.2014 08:59, Stephan Bernhard wrote:
>>> hallo liste
>>>
>>> seit fünf jahren betreibe ich TYPO3 installationen, die alle von anfang
>>> an korrekt auf utf-8 eingestellt waren, entsprechend auch die
>>> dazugehörigen datenbanken.
>>>
>>> nun werden plötzlich die eingegebenen umlaute nicht mehr korrekt
>>> gespeichert, sondern so, als ob utf-8 als iso 8859-1 interpretiert und
>>> so in der datenbank gespeichert werden.
>>>
>>> dies geschieht beim speichern eines textes mit umlauten, die in
>>> rtehtmlarea eingegeben werden. sobald sie in der DB gespeichert sind,
>>> verändern sie sich (siehe betreff).
>>>
>>> bis jetzt habe ich den grund für dieses absurde verhalten des
>>> rtehtmlarea noch nicht herausgefunden.
>>>
>>> wenn ich die entsprechenden textstellen mit phpmyadmin im entsprechenden
>>> feld der tabelle tt_content korrigiere, bleibt die korrektur stabil.
>>> d.h. im BE und im FE wird alles korrekt angezeigt.
>>>
>>> versionen:
>>> TYPO3: 4.5.28
>>> php:  5.4.24 (früher: 5.3.28)
>>> mysql: 5.5.31
>>>
>>> danke für entsprechende hints und hilfe
>>>
>>> stephan
>>
>> _______________________________________________
>> TYPO3-german mailing list
>> TYPO3-german at lists.typo3.org
>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>
>
>
> --
> Xing: http://www.xing.com/profile/Peter_Linzenkirchner
> Web: http://www.typo3-lisardo.de
> Facebook: http://tinyurl.com/lisardo-multimedia
>



More information about the TYPO3-german mailing list