Dans l'absolu, il vaut mieux que tes données soient encodées avec le même charset que celui attendu par ta base de données (paramètre configurable au moment de la création de la base, de la table ou du champ, selon le sgbd)
Cependant, il faut savoir que tous les encodages se font sans perte de données. C'est à dire que tu peux tout à faire stocker un carctère chinois en utilisant l'encodage ASCII.
Si tu relis le truc en utilisant le même encodage que celui utilisé au départ, tu retrouveras tes infos non altérées.
Ceci dit, c'est mal, parceque si on consulte la base directement avec un requêteur, quand le charset est inconsistant, tu vois n'improte quoi comme caractères