Los caracteres que están más allá de la gama ASCII de 7 bits también son útiles en inglés. ¿Alguien que usa su software incluso necesita escribir el signo €? O £? ¿Qué hay de distinguir "currículum vítae" de "currículum vitae"? Usted dice que es utilizado por científicos de todo el mundo, que pueden tener nombres como "Jörg" o "Guðmundsdóttir". En un entorno científico, es útil hablar sobre longitudes de onda como λ, unidades como Å, o ángulos como Θ, incluso en inglés.
Algunos de estos caracteres, como "ö", "£" y "€", pueden estar disponibles en codificaciones de 8 bits como ISO-8859-1 o Windows-1252, por lo que puede parecer que solo puede usar esas codificaciones y listo. El problema es que hay caracteres fuera de esos rangos que muchas personas usan con mucha frecuencia, por lo que muchos de los datos existentes están codificados en UTF-8. Si su software no comprende que al importar datos, puede interpretar el carácter "£" en UTF-8 como una secuencia de 2 caracteres de Windows-1252 y presentarlo como "Â £". Si este tipo de error no se detecta durante el tiempo suficiente, puede comenzar a confundir seriamente sus datos, ya que los pases múltiples de interpretaciones erróneas alteran sus datos cada vez más hasta que se vuelven irrecuperables.
Y es bueno pensar en estos problemas desde el principio en el diseño de su programa. Como las cadenas tienden a ser un concepto de muy bajo nivel que se enhebra en todo el programa, con muchas suposiciones sobre cómo funcionan implícitas en cómo se usan, puede ser muy difícil y costoso agregar soporte Unicode a un programa más adelante si nunca has pensado en el problema para empezar.
Mi recomendación es usar siempre bibliotecas y tipos de cadenas compatibles con Unicode siempre que sea posible, y asegúrese de que cualquier prueba que tenga (unidades, integración, regresión o cualquier otro tipo de pruebas) que trate cadenas trate de pasar algunas Unicode ata a través de su sistema para garantizar que funcionen y salgan ilesos.
Si no maneja Unicode, entonces le recomiendo asegurarse de que todos los datos aceptados por el sistema son de 7 bits limpios (es decir, no hay caracteres más allá del rango US-ASCII de 7 bits). Esto ayudará a evitar problemas con incompatibilidades entre codificaciones heredadas de 8 bits como la familia ISO-8859 y UTF-8.
"parece que la única razón para cambiar de ASCII a UNICODE es para la internacionalización" Lejos de ser cierto. ¿Por qué haces ese reclamo? ¿Dónde lo has visto como la ÚNICA razón? –
Utilicé "parece" porque no sé de ninguna otra razón. Por favor, enséñame. – bsruth
Unicode no es un acrónimo, usted sabe – skaffman