UTF-8, UTF-16 y UTF-32

¿Cuáles son las diferencias entre UTF-8, UTF-16 y UTF-32? Entiendo que todos almacenarán Unicode, y que cada uno usa un número diferente de bytes para representar un carácter. ¿Hay alguna ventaja en elegir uno sobre el