Realice pruebas en estructuras de XML de este tipo Id Valor 1 <俄語>Китайский</俄語> 2 <hola><俄語>Китайский</俄語></hola> 3 <俄><俄語>Китайский</俄語></俄> 4 <俄><俄語>俄</俄語></俄> 5 <hola>Китайский</hola> 6 <hola>俄語</hola>
Estos valores pudieron ser almacenados sin problemas mediante insert directos en tabla. Se realizo pruebas de búsqueda de caracteres especiales Búsqueda de valor Китайский: Prueba 01 SELECT * FROM xml_prueba where xpath_bool(cast("dato" as text),'/俄語[text()="Китайский"]') Resultado: Error Path Prueba 02 SELECT * FROM xml_prueba where xpath_bool(cast("dato" as text),'/hola[text()="Китайский"]') Resultado: 5 <hola>Китайский</hola> Diferente al caso anterior, donde no tomo el valor en chino como tag Prueba 03 SELECT * FROM xml_prueba where xpath_bool(cast("dato" as text),'//俄語[text()="Китайский"]') Resultado: 1 <俄語>Китайский</俄語> 2 <hola><俄語>Китайский</俄語></hola> 3 <俄><俄語>Китайский</俄語></俄> Prueba 04 SELECT * FROM xml_prueba where xpath_bool(cast("dato" as text),'./俄語[text()="Китайский"]') Resultado: 2 <hola><俄語>Китайский</俄語></hola> 3 <俄><俄語>Китайский</俄語></俄> Prueba 05 SELECT * FROM xml_prueba where xpath_bool(cast("dato" as text),'../俄語[text()="Китайский"]') Resultado: 1 <俄語>Китайский</俄語> Prueba 06 SELECT * FROM xml_prueba where xpath_bool(cast("dato" as text),'*[text()="Китайский"]') Resultado: 2 <hola><俄語>Китайский</俄語></hola> 3 <俄><俄語>Китайский</俄語></俄> Búsqueda de valor 俄: Prueba 01 SELECT * FROM xml_prueba where xpath_bool(cast("dato" as text),'//俄語[text()="語"]') Resultado: 4 <俄><俄語>俄</俄語></俄> Prueba 02 SELECT * FROM xml_prueba where xpath_bool(cast("dato" as text),'../俄語[text()="語"]') Resultado: Vacio Prueba 03 SELECT * FROM xml_prueba where xpath_bool(cast("dato" as text),'./俄語[text()="語"]') Resultado: 4 <俄><俄語>俄</俄語></俄> Prueba 04 SELECT * FROM xml_prueba where xpath_bool(cast("dato" as text),'*[text()="語"]') Resultado: 4 <俄><俄語>俄</俄語></俄> Búsqueda de valor 俄語: Prueba 05 SELECT * FROM xml_prueba where xpath_bool(cast("dato" as text),'/hola[text()="俄語"]') Resultado: 6 <hola>俄語</hola> Atte. Cristián J. Carrasco Gómez -----Mensaje original----- De: Gunnar Wolf [mailto:[EMAIL PROTECTED] Enviado el: Martes, 25 de Noviembre de 2008 16:57 Para: Alvaro Herrera; [EMAIL PROTECTED]; 語n CC: Guido Barosio; Cristian Carrasco; pgsql-es-ayuda Asunto: Re: [pgsql-es-ayuda] unicode xml Alvaro Herrera dijo [Tue, Nov 25, 2008 at 03:10:56PM -0300]: > > > Valor > > > 为到地和ñ > > > (...) > > > Aquí el valor desplegado es algo como esto: 語/g& bla bla bla > > Guido Barosio escribió: > > Cristian, > > > > Huele a encoding del cliente, consideraste eso? > > El codigo XML hace sus propias conversiones de codificación :-( Me > pregunto si se estará mareando por eso. > > Ahora, lo otro es que 語 parece sospechosamente HTML, así que la > otra posibilidad es que la contaminación venga de otra capa, externa a > Postgres. No tengo idea de si con "語/g& bla bla bla" estás citando literalmente lo que te da ante tu cadena, pero eso parece una representación válida de un ideograma oriental. La notación "&#x(hexa); indica que el transporte HTTP puede haber especificado una codificación más baja que UTF, pero el contenido va representando los codepoints Unicode indicados. Puedes hacer la prueba, por ejemplo, con el módulo de Perl HTML::Entities: $ perl -e 'use HTML::Entities; print HTML::Entities::decode_entities("語\n")' Wide character in print at -e line 1. 語 Claro, te está advirtiendo de que puede que a tu terminal no le guste ese caracter (lo del "Wide character")... Pero funciona correctamente. Si quieres ver varios caracteres de la familia consecutivos: $ perl -e 'use HTML::Entities; for my $num (0..15) { $chr .= sprintf("ࢩ%x;", $num); } print HTML::Entities::decode_entities($chr) ' Wide character in print at -e line 1. 誐誑誒誓誔誕誖誗誘誙誚誛誜誝語誟 (Nota: Puede que _mi_ mensaje no se vea bien... No estoy seguro de que este entorno se lleve con el Unicode que estoy escribiendo) -- Gunnar Wolf - [EMAIL PROTECTED] - (+52-55)5623-0154 / 1451-2244 PGP key 1024D/8BB527AF 2001-10-23 Fingerprint: 0C79 D2D1 2C4E 9CE4 5973 F800 D80E F35A 8BB5 27AF -- TIP 6: �Has buscado en los archivos de nuestra lista de correo? http://archives.postgresql.org/pgsql-es-ayuda