MySQL PHP Umlaute/Sonderzeichen fixen UTF-8/ISO
                               vom 2011/11/18          
                                     Jeder kennt das Problem, aus irgendeinem Grund wurden Wrter in der  falschen Kodierung in die Datenbank geschrieben. Wenn das passiert ist,  kann man daran erkennen, dass sich Zeichen wie diese untergemischt  haben:
 '¦, '¨, '?, '´, '¸, 'À, 'Á, 'Â, 'Ã, 'Ä, 'Å, 'Æ, 'Ç, 'È, 'É, 'Ê, 'Ë, 'Ì, 'Í, 'Î, 'Ï, 'Ñ, 'Ò, 'Ó, 'Ô, 'Õ, 'Ö, 'Ø, 'Ù, 'Ú, 'Û, 'Ü, 'Ý, 'Þ, 'ß, ' , 'á, 'â, 'ã, 'ä, 'å, 'æ, 'ç, 'è, 'é, 'ê, 'ë, 'ì, '*, 'î, 'ï, 'ð, 'ñ, 'ò, 'ó, 'ô, 'õ, 'ö, 'ø, 'ù, 'ú, 'û, 'ý, 'þ, 'ÿ Das Problem ist, dass diese Zeichen nicht utf8 kodiert worden sind,  aber in utf8 abgespeichert worden sind, weil die DB Spalte so definiert  worden ist (Kolation: utf8_general z.B

.
 Um dies zu vermeiden, sollte also vorher die Funktion
 $string = utf8_encode($string); angewendet werden.
 Die Codierung von Strings kann berprft werden mit der Funktion 
mb_detect_encoding (vielen Dank an FranKee).
 echo mb_detect_encoding($string); Eine einfache rekusive Funktion um ein mehrdimensionales Array nach  UTF-8 zu kodieren ist (performanter wre noch mit Refernzen zu  arbeiten):
 function utf8encodeArray($array) {         foreach($array as $key =>  $value)         {             if(is_array($value))             {                 $array[$key] = utf8encodeArray($value);             }             elseif(!mb_detect_encoding($value, 'UTF-8', true))             {                 $array[$key] = utf8_encode($value);             }         } } Eine weitere Fehlerquelle, ist die bertragung der Daten zur  Datenbank, diese sollte immer beim ffnen der Datenbankverbindung auf  UTF-8 gesetzt werden:
 mysql_query("SET NAMES 'utf8'");