Originariamente inviato da Dheed
Usa questa fantasmagorica funzione:
Codice PHP:
function normalize_str($str){
    
$invalid = array(
        
'Š'=>'S',             'š'=>'s',             'Ð'=>'Ð',         'Ž'=>'Z',             'ž'=>'z',            'À'=>'À',    'Á'=>'Á',    'Â'=>'Â',
        
'Ä'=>'Ä',         'Å'=>'Å',     'Æ'=>'Æ',     'Ç'=>'Ç',     'È'=>'È',     'É'=>'É',     'Ê'=>'Ê ',     'Ë'=>'Ë',
        
'Ì'=>'Ì',     'Í'=>'Í',     'Î'=>'Î',     'Ï'=>'Ï',         'Ñ'=>'Ñ',    'Ò'=>'Ò',     'Ó'=>'Ó',     'Ô'=>'Ô',
        
'Õ'=>'Õ',     'Ö'=>'Ö',         'Ø'=>'Ø',     'Ù'=>'Ù',     'Ú'=>'Ú',     'Û'=>'Û',     'Ü'=>'Ü',         'Ý'=>'Ý',
        
'Þ'=>'Þ',     'ß'=>'ß',        'à'=>' à',     'á'=>'á',     'â'=>'â',     'ã'=>'ã',     'ä'=>'ä',         'å'=>'å',
        
'æ'=>'æ',     'ç'=>'ç',     'è'=>'è',     'é'=>'é',     'ê'=>'ê ',      'ë'=>'ë',         'ì'=>'ì',     'í'=>'í',
        
'î'=>'î',     'ï'=>'ï',         'ð'=>'ð',         'ñ'=>'ñ',     'ò'=>'ò',     'ó'=>'ó',     'ô'=>'ô',     'õ'=>'õ',
        
'ö'=>'ö',         'ø'=>'ø',     'ù'=>'ù',     'ú'=>'ú',     'û'=>'û',        'ü'=>'ü',         'ý'=>'ý',    'þ'=>'þ',
        
'"'=>'&quot;',        '“'=>'&quot;',        '”'=>'&quot;',        '‘'=>'&apos;',        '’'=>'&apos;',        "'"=>'&apos;',        '<'=>'&lt;',        '>'=>'&gt;',
        
'Ã'=>'&Atilde;',    '*'=>'*'
        
);              
        
$str str_replace(array_keys($invalid), array_values($invalid), $str);
        return 
$str;
    } 

Non MI SERVE convertire, ma capire

perchè viene memorizzato "Ã" ? ma letto "à" ?
forse perche uso PHP MY ADMIN che nn ha una codifica UTF 8 come lettura?