UTF-8, UTF-16 et UTF-32

Quelles sont les différences entre UTF-8, UTF-16 et UTF-32? Je comprends qu'ils stockeront tous Unicode et que chacun utilise un nombre différent d'octets pour représenter un caractère. Y a-t-il un avantage à choisir l'un plutôt que