---
title: "UTF-8 und Latin1 Mischmach in der DB bereinigen"
url: "https://www.typo3.net/d/120643-utf-8-und-latin1-mischmach-in-der-db-bereinigen"
source: "typo3.net"
tags: ["Hosting","Installation & Update","Datenbank","Tipp"]
created: "2015-08-04"
last_reply: "2015-08-04"
replies: 0
solved: false
page: 1
pages: 1
lang: "de"
---

# UTF-8 und Latin1 Mischmach in der DB bereinigen

Hosting › Installation & Update · 0 Antworten · gestartet 2015-08-04

## Eröffnungsbeitrag

**jojo31** · 2015-08-04 · [Beitrag #1](https://www.typo3.net/d/120643-utf-8-und-latin1-mischmach-in-der-db-bereinigen/1)

Keine Ahnung, ob dazu jemand mal was geschrieben hat, aber hier mal meine Lösung als kleines PHP-Script.
Es kommt ja schon ab und zu mal vor, dass man ein uraltes Typo3, welches einen hübschen Mix von Latin1 und Utf8, sogar innerhalb von Contentelementen, upgraden muss und dann einen hübschen Salat vor sich hat.
Dann einfach mal die Tabelle tt_content schnappen und in eine Testdatenbank verfrachten, auf welche ihr dann folgendes Scriptchen los lasst:

```php
<?php 
header('Content-Type: text/html; charset=UTF-8');

// DB Verbindung
   $user = 'root';
   $pass = '';
   $dbName = 'typo3_utf8_test';
   $host = 'localhost';

   $Verbindung = mysqli_init();
   // mysqli_options($Verbindung,MYSQLI_OPT_LOCAL_INFILE);
   mysqli_real_connect($Verbindung,$host, $user, $pass,$dbName) 
                  or die ('<P>Unable to connect</P>');
	
   $Verbindung->set_charset("utf8");
   

if(!function_exists('mysqli_result'))
{
	function mysqli_result($res, $row, $field=0) 
	{ 
		if($res)
		{
			$res->data_seek($row); 
			$datarow = $res->fetch_array(); 
			return $datarow[$field]; 
		}
		else
		{
			return $t='';	
		}
		
	} 

}

		
// Felder die zu korrigieren sind
$var[0] = 'bodytext';
$var[1] = 'header';
$var[2] = 'subheader';
$var[3] = 'titletext';
$var[4] = 'imagecaption';

$SQL_eintraege = "SELECT * FROM tt_content ORDER BY uid";
$Ergebnis_eintraege = mysqli_query($Verbindung,$SQL_eintraege);

foreach($var as $feld)
{
	$i = 0;
	while($uid = @mysqli_result($Ergebnis_eintraege,$i,'uid'))
	{
			$strum_a = htmlentities(@mysqli_result($Ergebnis_eintraege,$i,$feld));
			$strum = html_entity_decode($strum_a);
			
			$SQL_UPD = "UPDATE tt_content SET ".$feld." = '".$strum."' WHERE uid = '".$uid."';";
			$Ergebnis_UPD = mysqli_query($Verbindung,$SQL_UPD);
			
		$i++;
	}
	echo "<br /><br />".$feld." => Fertig!<br /><br />";
}
?>
```

Im oberen Bereich nur noch eure Daten zur DB-Verbindung ändern!

Dann einfach alte Tabelle sichern und durch diese umgewandelte ersetzen.
Dann sollte alles schick in UTF8 kommen. :)

---

Quelle: „UTF-8 und Latin1 Mischmach in der DB bereinigen“, typo3.net, https://www.typo3.net/d/120643-utf-8-und-latin1-mischmach-in-der-db-bereinigen
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
