Pour tenter rapidement de répondre à vos questions spécifiques.
1: Une certaine combinaison de bits représente un certain caractère. Un seul caractère peut être stocké dans plusieurs octets.
2: Brèves informations et différences entre les codages que vous avez mentionnés.
ASCII
Comprend les définitions de 128 caractères.
ANSI
a plus de caractères que l'ASCII, mais se glisse dans un octet. Nécessite une page de code.
UTF-8
Cela peut être utilisé pour représenter un caractère Unicode. Il y a beaucoup plus de caractères Unicode que de caractères ASCII. Il stocke chaque caractère dans un à quatre octets de données.
UTF-16
similaires à UTF-8, mais l'unité de base est de 16 bits. Si vous n'utilisez que l'anglais, vous gaspillez 8 bits sur chaque personnage.
3: Une page de code est ce qui spécifie à l'ordinateur quelle (combinaison de bits) fait référence à quel caractère. Unicode n'a pas besoin de pages de code car chaque personnage a sa propre combinaison de bits. ANSI a des pages de codes car il ne dispose que de 256 caractères disponibles.Par exemple, si vous étiez sur un ordinateur arabe, l'arabe serait défini comme page de code et les caractères arabes pourraient être affichés.
4: La méthode de la conversion dépend du jeu de caractères que vous convertissez et de et les pages de code utilisées (le cas échéant). Certaines conversions peuvent ne pas être possibles. UTF-8 est rétrocompatible avec ASCII, ce qui signifie que si votre texte ne comprend que les 128 premiers caractères US, il est exactement le même que le même texte en codage ASCII.
Cette réponse est ad hoc et il peut y avoir des erreurs, des corrections bienvenues.
Question connexe (la plupart des votes dans la balise unicode): http://stackoverflow.com/questions/222386 – mghie