Para migrar la base de datos me hice una pequeña aplicación que leia la estructura de la base de datos y crea otra modificando los campos "texto" para agregarles el CHARSET (CHARACTER SET UNICODE_FSS).
UNICODE es el sistema para identificar a cada caracter (cientos de miles en este momento).
UTF-8 es una forma de codificar UNICODE tratando de reducir el espacio necesario.
UTF-16, UTF-32: Lo mismo que UTF-8 pero sacrificando espacio.
WIN1250, WIND1251, WIN1252, ISO8859, etc.: Son mapas de caracteres. Solo contienen algunos. Por ejemplo la Ñ está en algunos juegos de caracteres y en otros, la posición de ese carater representa otro distinto.
ASCII: Es el juego mas limitado de 256 caracteres.
NONE: En Firebird, se refiere a que tomará los bytes que se le pase y los guardará sin interpretar dentro del campo de texto. A quien lea también se le enviarán esos bytes. Esto puede dar lugar a malas interpretaciones.
Por ejemplo:
TEXTO tiene CS=NONE
Conexión CS=NONE
insert into PRUEBA(TEXTO)values('Artículo') <-- Con acento en la I
Conexión CS=WIN1252
select TEXTO from PRUEBA(TEXTO)
Resulta en 'artÃ*culos'
TEXTO tiene CS=UNICODE_FSS
Conexión CS=UTF-8 desde la web
insert into PRUEBA(TEXTO)values('Artículo') <-- Con acento en la I
Conexión CS=WIN1252 desde Windows
select TEXTO from PRUEBA(TEXTO)
Resulta en 'artículos' porque el cliente Firebird transforma de UNICODE_FSS a WIN1252
|