Chiederò quale probabilmente è una domanda piuttosto controversa: "Dovrebbe essere uno dei più le codifiche popolari, UTF-16, sono considerate dannose? "
Perché faccio questa domanda?
Quanti programmatori sono a conoscenza del fatto che UTF-16 è in realtà una codifica a lunghezza variabile? Con questo intendo che ci sono punti di codice che, rappresentati come coppie surrogate, prendono più di un elemento.
Lo so; molte applicazioni, framework e API usano UTF-16, come Java's String, C #'s String, API Win32, librerie Qt GUI, la libreria Unicode ICU, ecc. Tuttavia, con tutto ciò, ci sono molti bug di base nell'elaborazione di caratteri fuori BMP (caratteri che dovrebbero essere codificati usando due elementi UTF-16).
Ad esempio, prova a modificare uno di questi caratteri: