@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