[Lazarus-es] sistemas unicode
JoshyFun
joshyfun en gmail.com
Sab Ene 9 20:25:44 CET 2010
Hello franmate,
Saturday, January 9, 2010, 7:37:51 PM, you wrote:
>> Esto es para determinar si Lazarus se debe de construir con soporte
>> Unicode o no, digamos que eso de un dia a otro desaparecerá ya que el
>> comportamiento de Lazarus es homogeneo tanto si el sistema operativo
>> por debajo soporta Unicode como si no.
fgc> Lo que hago en este momento es utilizar una variable boolean ( esansi
fgc> ) y la pongo a true si es windows, de esta forma todo funciona bien en
fgc> linux-ubuntu y windows, pero tengo que cambiar el valor antes de cada
fgc> compilación ( lo que no se debería hacer en lazarus: "escribe una vez,
fgc> compila donde quieras" ) , el problema aparecerá si el usuario utiliza
fgc> un linux ansi o si windows cambia a UTF-8
fgc> Utilizo utf8toansi y ansitoutf8, no acabo de familiarizarme con
fgc> utf8tosys y systoutf8
El problema viene por lo que crees que significa "UTF8ToAnsi", no
significa "UTF8ToPageCode", vamos que no convierte los caracteres que
tengas a una página de códigos, si no UTF8 al juego de caracteres que
usa el sistema operativo anfitrión.
De este modo tomando un Linux configurado como UTF8 (1), otro
configurado para ISO8859-1 (2) y cualquier Windows (95,98,XP...) y que
esté configurado en Español de España (3):
1) UTF8ToAnsi = UTF8ToUTF8
2) UTF8ToAnsi = UTF8ToISO8859-1
3) UTF8ToAnsi = UTF8ToWin1252
fgc> La aplicación también genera un zip , y aquí las cosas empeoran . Con
fgc> zipper ( bajado de svn ) perfecto en linux, pero en windows vuelven
fgc> los caracteres extraños con acentos y ñ.
El formato ZIP normal no soporta Unicode de ningún tipo, no existe un
modo standard de pasar un ZIP comprimido en Rusia con nombres
cirílicos a España por ejemplo. Si creas los nombres de ficheros con
UTF8 se mostrarán bien en un Linux UTF8 pero mal en Windows. Por
decirlo de otro modo los nombres sólo se recuperarán correctamente si
se escriben en ASCII<127 o si se recuperan en el mismo sistema en el
que han sido comprimidos usando UTF8ToAnsi.
fgc> Haciendo pruebas en chino ( copié unos caracteres en chino de la web
fgc> ), con linux perfecto, pero en windows nada de nada . Esto no tiene
fgc> que ver con lazarus, es un problema de windows, pero es un comentario
No es una limitación de Windows, es una limitación actual del RTL de
FreePascal. En Windows tendrás problemas para mostrar caracteres en
chino si no tienes una fuente unicode completa que soporte los
caracteres chinos (por defecto creo que no hay ninguna, puedes
instalar Arial Unicode).
La limitación de FreePascal en Windows me imagino que será subsanada
"en breve" con el soporte de las nuevas variables de cadena Unicode
nativas y cargando dinámicamente las versiones "W" de las API
necesarias.
fgc> para afirmar las posibilidades de linux.
A este nivel las posibilidades de ambos son muy similares, sólo que
Linux mayormente ha tomado el camino del UTF8 mientras que Windows
desde 2000 en adelante ha tomado el camino del UTF-16BE. No son ni
mejores ni peores, simplemente diferentes aunque no mucho. Otra cosa
son las in-"utilidades" que acompañan el kernel de Windows que con el
unicode, sea el que sea, suelen pasarlo muy mal, desde el explorador
de ficheros al omnipresente CMD.EXE que para poco más vale que para
borrar un archivo...
--
Best regards,
JoshyFun
More information about the Lazarus-es
mailing list