....Memorizzazione significa anche salvare i sorgenti con il giusto charset affinché le costanti stringa siano interpretate correttamente, non solo nel database.
Quindi se hai un file HTML in iso-8859-1, hai voglia a settare il browser in UTF-8, non basta quello per cambiare il suo charset, così come non basta dichiarare un metatag "utf-8" o un header HTTP analogo per rendere quel documento realmente in utf-8. Ci deve essere concordanza in tutti questi aspetti.
- quasi tutte le funzioni di manipolazione delle stringhe di PHP < 6 non funzionano su charset multibyte, (UTF-8 è multibyte), ma esistono librerie ed estensioni per risolvere questo problema.
- il collation riguarda l'ordinamento alfabetico delle stringhe. Ad esempio in Germania, dove vi sono più caratteri rispetto all'alfabeto latino standard, anche l'ordinamento alfabetico cambia di conseguenza. Quindi il collation da specificare in MySQL serve appunto ad ottenere un corretto ordinamento dei risultati testuali nelle query. In genere è molto semplice, perché c'è un collation di default per ogni charset. Quindi se usi UTF-8 come charset ti basta prendere il collation UTF-8 case insensitive e sei a posto.
Dubbi, perplessità?