Originariamente inviato da lupusonline
Mi allaccio alla discussione avendo provato ad inserirne una simile ed ancora senza risposta
Io passo l'istruzione dui cui sopra sempre nel modo che qui sotto scriveró e da sempre ho fatto cosí, ma ora i caratteri risultano non essere quelli contenuti nel database di MySQL, dati che ho importati con ODBC e che ho contrallato essere esatti come ß à ü í ú ö l'apostrofo eccetera.
Questa l'istruzione che inserisco nei files :
utf8_encode(trim($res[$i]['name']))
o
altre come
utf8_encode($res[$i]['cognome'])
Ho anche provato a chiedere di settare PHP5 in default_charset con utf8, ma come pensavo la risposta è stata negativa.
Cosa mi resta da fare ora ?
Dove puoi, usa questa funzione per testare se una stringa è utf8:
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;
}
Sopra poi è stato scritto, esegui la query "set names 'utf8'" subito dopo aver stabilito la connessione?
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?