[Lazarus-es] Error al leer charset ISO8859_1 en Firebird2.1.3con Lazarus

Ismael L. Donis García ismael en citricos.co.cu
Mie Dic 2 19:04:03 CET 2009


Ampliando un poco más.

Sin dudas el mejor es UTF8 el cual te permite todo tipo de carácter.

Problema:
No todos los conectores lo permitir por ser este relativamente nuevo.

Solución:
Implementar en C tu propia clase de conexión, cuestión esta que no todos estamos dispuestos a realizar ya que es mejor utilizar las existentes.

Ahora respecto a la norma europea ISO8859 la misma tiene especificaciones para muchos tipos de idiomas, y a la ves cada una de ellas tiene también especificaciones.

Por ejemplo en Firebird la subnorma ISO8859_1 tiene
collation DA_DA
collation DE_DE
collation EN_UK
collation EN_US
collation ES_ES
collation PT_BR
collation PT_PT
collation FR_FR    talvez se me quede alguna más

Por lo que yo puedo tenerla ISO8859_1 y usarla con los diferentes idiomas establecidos en el collate

Pero además de la ISO8859_1 están las

ISO8859_1 
......
ISO8859_1 3

Saludos reiterados
=========
¦¦ ISMAEL ¦¦
=========
"Oír o leer sin reflexionar es una ocupación inútil".
               Confucio (551-479 a. C.); filósofo chino.

----- Mensaje original ----- 
De: "JoshyFun" <joshyfun en gmail.com>
Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org>
Enviado: miércoles, 02 de diciembre de 2009 09:39
Asunto: Re: [Lazarus-es] Error al leer charset ISO8859_1 en Firebird2.1.3con Lazarus


Hello Paola,

Wednesday, December 2, 2009, 2:53:07 PM, you wrote:

PB> Hola Joshy..
PB> siguiendo este hilo, me puse a hacer pruebas creando una nueva base de
PB> datos firebird 2.1, usando IBExpert.
PB> Si la creo con el charset UTF8, agrego una tabla cualquiera (campos
PB> codigo, nombre) y le agrego datos, NO me permite ingresar nombres con
PB> tildes.

El problema es que no has descrito como lo haces, me explico, ¿ Cómo
abre IBExpert la conexión con Firebird ? Si el charset del campo es
UTF-8 (ojo, cada carácter ocupa 3 bytes en la base de datos) pero
IBExpert abre la conexión en ISO8559-1 entonces se produce el
"problema".

PB> Ahora, si creo la base de datos dejando el charset en NONE, creo una
PB> tabla cualquiera y la cargo con datos, no tengo problemas con tildes.

No deberías, pero el "problema" es que no funcionarán ni UPPERCASE, ni
ordenación alfabética ni nada de ese tipo. Bueno, funcionará la
ordenación (creo) pero por orden ASCII, o sea, que en vez de:

PruebA
Prueba
PruebC

Ordenará

PruebA
PruebC
Prueba

PB> Supongo que con el character ser 8859-1 no habrá problemas..
PB> entonces, cuando creo una bd, que charset sería el que me causaría luego
PB> menos problemas con los clientes que use?

El que menos problemas te generará depende de lo que vayas a meter
dentro. Si la base de datos sólo almacenará textos ISO8559-1 entonces
ese será el mejor, pero si la base necesitará campos internacionales
para griego por ejemplo, o ruso, necesitas que sea Unicode. La
conexión para que sea todo directo con Lazarus tendrás que abrirla en
UTF-8 para que los datos recibidos sean compatibles con los controles
visuales directamente.

Los campos UTF-8 lo malo que tienen es que ocupan 3 bytes por
caracter, o sea, el triple, lo bueno, que da igual en qué idioma
escribas, hasta la ordenación es buena en casi todos los idiomas
(algunos necesitan una ordenación en UTF-8 especial, pero son los
menos, la mayoría sólo tienen una letra fuera de su posición correcta,
ya que por ejemplo en Español Î sería ordenado al lado de las otra I
mientras que en Turco iría al final creo recordar).

-- 
Best regards,
 JoshyFun


_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20091202/59a435e8/attachment-0002.html>


More information about the Lazarus-es mailing list