La raccolta non ha nulla a che fare con l'archiviazione. È necessario impostare il set di caratteri per determinare la codifica di archiviazione. Le regole di confronto determinano le modalità di confronto e ordinamento. Le regole di confronto devono essere consapevoli del set di caratteri, ma per il resto non ha nulla a che fare con il set di caratteri.
Per rispondere alla tua domanda, puoi utilizzare iconv
per traslitterare il testo, quindi confrontarlo. Ad esempio:
function compare($s1, $s2) {
return strcmp(
iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $s1),
iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $s2));
}
Questo è fondamentalmente ciò che MySql farà per te, anche se probabilmente è più veloce e potrebbe avere una tabella di confronto leggermente diversa rispetto a ISO-8859-1//TRANSLIT
. Non ne sono del tutto sicuro.
Probabilmente sarebbe più facile usare il database, come altri hanno già suggerito.