Como parece haber recibido un pequeño golpe por pensar que Windows "lo está haciendo bien", creo que debería publicar una respuesta para justificar mi posición.
El hecho es que el texto que tiene le dice al sistema operativo que muestre una cantidad increíble de caracteres combinados. El problema que un sistema operativo realmente los representa mientras que otro no lo hace se debe a una serie de problemas. Uno de estos problemas es cuán minuciosos fueron los programadores cuando escribieron el código para representarlos, otro sería debido a que los programadores son demasiado flojos para implementarlos correctamente, si es que lo hacen.
Básicamente se trata de la idea de que los idiomas escritos son cosas fluidas, y que muchos caracteres en ciertos idiomas tienen múltiples signos diacríticos diferentes que se aplican para modificar la pronunciación de los caracteres. ¿Cómo manejamos todos estos signos diacríticos? ¿Le damos a cada letra con un carácter nuevo un signo diacrítico (lo que daría como resultado una gran cantidad de caracteres nuevos y casi idénticos) o creamos un conjunto de caracteres específicamente para diacríticos y reducimos nuestro alfabeto general?
Unicode nos da la posibilidad de hacer ambas cosas, pero al hacerlo, los programadores que tienen que representar estos diacríticos tienen que lidiar con el hecho de que hay algunos caracteres que realmente tienen múltiples signos diacríticos, uno arriba y otro abajo, y luego el programador tiene hacer la pregunta de cuándo se detienen. Podrían limitarlo a dos y satisfacer a la mayoría de las personas, pero ignorar a aquellos que quieren o necesitan tres diacríticos para escribir formalmente en su propio idioma.
Microsoft, ya sea correcta o incorrectamente, decidió dejar que el usuario decida cuántas marcas adicionales quiere usar una persona. Este camino requiere un programador bastante bueno y una racionalización difícil de seguir. Los apoyo totalmente al permitir esto y al hecho de que lo hacen bien .
Si esos personajes faltaban, por otro lado, me gustaría saber por qué faltaban. ¿Fue una x
decisión de "tiramos esto al piso después de los diacríticos", o fue debido a que los programadores eran demasiado vagos para hacerlo correctamente y potencialmente me exponían a un desbordamiento del búfer con código oculto en los diacríticos que se pasaban a ser ejecutados por ¿el sistema?
El problema simple aquí es que al representar esos caracteres puedo ver que el sistema está haciendo exactamente lo que se le dice que haga, en lugar de hacer lo que cree que es correcto o, lo que es peor, hacer algo potencialmente dañino .