Die Lösung steht eigentlich schon mehrfach im Forum. Ich habe das Skript in den letzten 12 Monaten in diversen Topics geposted.
Das Skript tut eigtl nichts außer alle Tabellen und deren Spalten zu durchlaufen. Ist eine Spalte vom Typ Text, Varchar oder Char so wird dessen charset auf utf8 gesetzt (utf8 COLLATE utf8_general_ci). Die Tabelle an sich wird ebenfals darauf umgestellt, jedoch unabhängig davon was für Spalten sich in Ihr befinden.
Ich erinner mich noch, dass ich diese Änderungen vor vielen Jahren manuell durchgeführt habe... da hat man dafür locker eine Stunde, eher mehr, investiert.
Code:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. | <?php
$data = mysql_query("SHOW TABLES");
while($row = mysql_fetch_row($data))
{
$sres = mysql_query("DESCRIBE ".($row[0]));
while( $column = mysql_fetch_row($sres))
{
// if column is text or varchar, convert
if(strpos($column[1],'text')!==false || strpos($column[1],'char')!==false
|| strpos($column[1],'varchar')!==false)
{
mysql_query("ALTER TABLE ".($row[0])." CHANGE ".($column[0])." ".($column[0])." ".($column[1])." CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL");
}
}
// confert now also full table
mysql_query("ALTER TABLE ".$row[0]." DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci");
}
?> |
Marceld wrote:
derchris wrote:
Dir ist aber schon klar das HTML eine Parser Sprache ist?
Von daher wuerde bei deinem "Beispiel" immer UTF-8 rauskommen.
kann nur sagen wie meine ehrfahrung ist:
ohne iso-8859-1 = umlautprobleme
mit iso-8859-1 = keine probleme mit umlauten...
da mich sowas auch immer interessiert bin ich da offen für erklärungen und wissen was mich bereichert!
Klingt für mich so als würde der Browser dann einfach in den Quirksmode springen, die Angaben ignorieren, und selbst entscheiden wie er das ganze verarbeitet. Was bei einem solchen Problem wie hier jedoch nichts gebracht hätte.