1) Se metto la funzione da te elencata nel file config.ini.php puó testareOriginariamente inviato da Cerebro
Dove puoi, usa questa funzione per testare se una stringa è utf8:
Sopra poi è stato scritto, esegui la query "set names 'utf8'" subito dopo aver stabilito la connessione?Codice PHP:function is_utf8($s)
{
for ($i=0; $i<strlen($s); $i++) {
if (ord($s[$i]) < 0x80) continue; # 0bbbbbbb
elseif ((ord($s[$i]) & 0xE0) == 0xC0) $n=1; # 110bbbbb
elseif ((ord($s[$i]) & 0xF0) == 0xE0) $n=2; # 1110bbbb
elseif ((ord($s[$i]) & 0xF8) == 0xF0) $n=3; # 11110bbb
elseif ((ord($s[$i]) & 0xFC) == 0xF8) $n=4; # 111110bb
elseif ((ord($s[$i]) & 0xFE) == 0xFC) $n=5; # 1111110b
else return false; # Does not match any model
for ($j=0; $j<$n; $j++) { # n bytes matching 10bbbbbb follow ?
if ((++$i == strlen($s)) || ((ord($s[$i]) & 0xC0) != 0x80))
return false;
}
}
return true;
}
Poi quando dici "dati che ho importati con ODBC e che ho contrallato essere esatti come ß à ü í ú ö l'apostrofo eccetera.", come li hai controllati?
E dove vedi che i caratteri non ti appaiono come dovrebbero?
utf8_encode(trim($res[$i]['name']))
e le altre ... contenute nei molti files ?
L'ho fatto, ma nulla cambia
2) Penso che tu sappia che ODBC importa da Access a mezzo MySQL-Front i dati come sono. Sono poi entrato nel mio database MySQL ed ho verificato se effettivamente ci fossero i valori correttamente importati ed è cosí, perchè li vedo scritti nei singoli campi delle tabelle e li posso modificare.
Peccato che ultimamente molti providers rifiutano di far usare ODBC con MySQL,
e allora in modo grossolano e macchinoso prima intervengo con un edit nelle querry eliminando l'apostrofo ed i simboli che non verrebbero importati esattamente e successivamente dopo aver eseguito la querry nel database modifico i dati.
Devi quindi sapere che per inserire ad edempio la doppia s tedesca ß la inserisco con codie asci ALT+225, ma questa nulla ha a che fare con la nostra discussione attuale.

Rispondi quotando