Buongiorno
Ho questo problema: dovrei convertire i caratteri accentati nel loro equivalente normale (ad esempio è => e). Ho provato diverse soluzioni trovate su internet, ma non riesco a farle funzionare.
Ad esempio, questo pezzo di codice
codice:
$transliterationTable = array('á'=>'a','Á'=>'A','à'=>'a','À'=>'A', (etc)
str_replace(array_keys($transliterationTable), array_values($transliterationTable), $txt);
non riesce a riconoscere nessuna lettera accentata.
Quando vado a stampare l'array transliterationTable ottengo tutta una serie di lettere strane.
Ho pensato fosse un problema del copia incolla, così ho creato un array con le lettere battute da tastiera (ovviamente limitato alle 6 che trovo sulla tastiera) ma il problema persiste.
L'ultimo tentativo che ho fatto è stato scrivere questo pezzo di codice
codice:
$ser[urlencode(' ')] = '_';
$ser[urlencode('à')] = 'a';
$ser[urlencode('è')] = 'e';
$ser[urlencode('é')] = 'e';
$ser[urlencode('ì')] = 'i';
$ser[urlencode('ò')] = 'o';
$ser[urlencode('ù')] = 'u';
$url = urlencode($url);
$url = str_replace(array_keys($ser), array_values($ser), $url);
sperando che passando per urlencode non ci fossero problemi.
Purtroppo lo stesso carattere (è) se scritto all'interno del codice è %C3%A8 mentre se lo mi arriva da un campo di testo mi viene trasformato in %E8
Non so come mai si comporta in questo modo.