UTF-8, UTF-16 e UTF-32

Quais são as diferenças entre UTF-8, UTF-16 e UTF-32? Entendo que todos eles armazenam Unicode e que cada um usa um número diferente de bytes para representar um caractere. Existe uma vantagem em escolher um sobre o