Actualmente estoy explorando la especificación del lenguaje Digital Mars D, y estoy teniendo problemas para entender la naturaleza completa de los tipos de caracteres primitivos. El libro Learn to Tango With D es igualmente vago sobre las capacidades y limitaciones del lenguaje en esta área.¿Cuáles son las limitaciones de los tipos de caracteres primitivos en D?
Los tipos se dan en the website como:
char; // unsinged 8 bit UTF-8 wchar; // unsigned 16 bit UTF-16 dchar; // unsigned 32 bit UTF-32
Ya que sabemos que la mayor parte de la Transformación Unicode (UTF) codificaciones Formato representan personajes con un bit de ancho variable, ¿significa esto que un char en D solo puede contener los valores que caben en 8 bits, o se expande en la memoria física de la máquina cuando le das caracteres de doble byte? Tal vez haya alguna otra posibilidad, como la conversión automática en el siguiente tipo más apropiado a medida que sobrecarga la variable.
Digamos, por ejemplo, que quiero usar el carácter UTF-8 en un editor y escribir en chino. ¿Simplemente se caerá, o es capaz de manejar los caracteres Unicode más 'correctamente', como en C#? ¿Sería necesario proporcionar código de pegamento para permitir trabajar con cualquier idioma admitido por Unicode?
Agradecería cualquier información específica que pueda ofrecer sobre cómo funcionan estos tipos bajo las coberturas, y cualquier consejo general de mejores prácticas para hacer frente a sus limitaciones.
"Dado que sabemos que el estándar Unicode representa caracteres con un bit de ancho variable "-> ¿te refieres a utf8? – elcuco
Sí, me refiero a las codificaciones UFT. Perdón por la confusion. – IanGilham