Re: problema con encodings y espacios

From: Linos <info(at)linos(dot)es>
To: Alejandro Chen <alejandro(dot)py(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: problema con encodings y espacios
Date: 2008-08-01 22:27:50
Message-ID: 48938DE6.50909@linos.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Si gracias lo termine arreglando ayer usando el codigo ascii hexadecimal con un regex
buscando los campos donde era posible que eso hubiera pasado. pero vaya telita de trabajo
manual, me pasa por dedicarme a portar datos de una aplicacion clipper del año 1000 ac.
sin ningun tipo de validacion en la entrada del usuario.

Un saludo,
Miguel Angel.

Alejandro Chen escribió:
> Linos escribio:
>
> .
> .
> .
>> y no solo postgres no quito los espacios a convertirlo a varchar si no que las funciones
>> de manejo de strings no lo hacen tampoco, ni trim, ni replace por ejemplo, despues de
>> darle vueltas me dio por probar que codigo me devolvian esos espacios asi que use
>> "ascii(substring(field from 1 for 1))" y me devolvio 160, luego probe "SELECT ascii(' ')"
>> y me devolvio 32 asi que parece ser que algunos campos continuan teniendo espacios con el
>> codigo del espacio que se usa en latin-1, no se si sera culpa del iconv o del postgres
>> pero son un monton de tablas y arreglarlas manualmente no va a ser sencillo, a alguien se
>> le ocurre alguna manera de automatizar esto para todos los campos que puedan estar afectados?
>> --
>> TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo
>
> hola, creo que esto te puede servir:
>
> postgres=# create table foo(a character varying(30));
> CREATE TABLE
> postgres=# insert into foo values(chr(160)||'12345 ');
> INSERT 0 1
> postgres=# select length( a ) from foo;
> length
> --------
> 11
> (1 fila)
>
> postgres=# select length( trim(a,chr(160)) ) from foo;
> length
> --------
> 10
> (1 fila)
>
> postgres=# select length( trim(a) ) from foo;
> length
> --------
> 6
> (1 fila)
>
> postgres=# select length( trim(trim(a),chr(160)) ) from foo;
> length
> --------
> 5
> (1 fila)
>
> ig_con=#
>
>
>
> Saludos
>
> Alejandro Chen

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Edgar Enriquez 2008-08-02 09:39:45 Re: conectar desde Java
Previous Message Alejandro Chen 2008-08-01 21:09:08 Re: problema con encodings y espacios