Initialement, utf-16 c'était pour être compatible avec l'encoding utilisé en interne par ICU (la lib sur laquelle php 6 devait se reposer).
utf-8 est préférable car la plupart des librairies/db/services/api supportent cet encoding. php, aurait du de toute manière faire des conversions utf-16 <-> utf-8 pour l'IO. C'était prévu.
Niveau espace mémoire requis, utf-8 est plus compacte pour les langages européens et américain. Pour tout le reste, utf-16 est il me semble et en moyenne, plus efficient. Le plus gros prob de utf-8 est qu'il se prête mal aux opérations sur les chaines. L'index d'un code point ne nous donne pas sa position effective dans la chaine.
En tout cas, le choix reste ouvert actuellement entre utf-8, 16 ou même 32.
Partager