La aplicación My Win32 Delphi analiza archivos de texto producidos por otras aplicaciones que no son compatibles con Unicode. Por lo tanto, mis aplicaciones necesitan leer y escribir cadenas ansi, pero me gustaría proporcionar una experiencia de usuario mejor localizada mediante el uso de Unicode en la GUI. La aplicación realiza un análisis bastante pesado carácter por carácter de la secuencia en objetos descendientes de TList.Transición a Unicode para una aplicación que maneja archivos de texto
Al hacer la transición a una interfaz gráfica de usuario Unicode al pasar de 2.006 a Delphi Delphi 2009, debería planificar a:
- ir completamente Unicode dentro de mi aplicación, con la excepción del archivo de E/S AnsiString?
- encapsula el código que maneja los ansistrings (es decir, continúa manejándolos como ansistrings internamente) desde una aplicación Unicode.
Me doy cuenta de que una respuesta realmente detallada requeriría una cantidad sustancial de mi código; solo estoy preguntando por las impresiones de quienes hicieron esta transición y que todavía tienen que trabajar con archivos de texto sin formato. ¿Dónde colocar la barrera entre ansistrings y Unicode?
EDITAR: si es # 1, ¿alguna sugerencia para correlacionar cadenas Unicode para salida ansistring? Supongo que la conversión de las cadenas de entrada será automática usando tstringlist.loadfromfile (por ejemplo).
Excelente: la forma en que explicaste esto ayuda mucho. En mi opinión, la entrada será en realidad archivos de texto UTF-8 (ASCII directo) y ahora tiene sentido que pueda usar cadenas Unicode codificadas en UTF-8 internamente. – Argalatyr
No es tan fácil usar cadenas codificadas en UTF-8 internamente, así que no lo recomiendo como política. Descubrirá que tan pronto como comience a usar Stringlists y las funciones de cadena de VCL más útiles, la función que necesite estará ausente o la utilizará implicará dos conversiones de codificación. – frogb
@frogb: De hecho, como política, sería una mala idea. Esto debe decidirse caso por caso. Sin embargo, sin saber lo que hace el código, es imposible decir qué funciones de cadena VCL son necesarias y qué conversiones de codificación esto causaría. – mghie