@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 <g...@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@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


_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an