Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   UTF8 en Delphi 2007 (https://www.clubdelphi.com/foros/showthread.php?t=76891)

gluglu 02-12-2011 16:58:32

UTF8 en Delphi 2007
 
Hola a tod@s !!

Llevo buscando ya varias horas aquí en Club Delphi así como en Google, pero no encuentro solución a mi problema.

Ejecuto :
Código Delphi [-]
var
  XMLResponse : WideString;
  Strm : TStringStream;
 
XMLResponse := IdHTTP1.Post("URLWeb", Strm);

donde, como indico, XMLResponse está declarado como WideString.

Tengo contacto directo con la fuente de la cual obtengo la respuesta, y hemos verificado que lo que me manda la fuente es un texto codificado en UTF8, donde por ejemplo se incluye la palabrá "más" de esta manera : m\xc3\xa1s

En cambio a mí, en XMLResponse me aparece "mC!s" donde se aprecia que la 'á' no aparece correctamente.

De nuevo indicar que utlizo Delphi 2007.

He intentado hacer uso de todas las funciones posibles, UTF8ToAnsi, UTF8Decode, etc, incluso algunas funciones que aparecen por estos foros que a su vez utilizan MultiByteToWideChar, pero no consigo dar con la solución correcta.

Si alguien me puede ayudar, estaría eternamente agradecido !!

Saludos :)

Añado : La cabecera de la respuesta que obtengo, no indica en ningún sitio que sea texto codificado UTF-8, sino que es texto plano, pero los caracteres especiales vienen con la codificación URF-8

gluglu 02-12-2011 17:35:34

Pasa lo que pasa siempre .... que al final, después de buscar varias horas, no encontrar la solución y poner la pregunta aquí en el Club, voy y encuentro la solución por otro lado ... ! :o

Aquí os dejo la solución para aquel a quien le pueda servir :

Código Delphi [-]
var
  XMLResponse : TStringStream;
  Respuesta : String;
  Strm : TStringStream;
 
Strm := TStringStream.Create('Datos a Enviar');
XMLResponse := TStringStream.Create('');
IdHTTP1.Post(URL, Strm, XMLResponse);
Respuesta := UTF8Decode(XMLResponse.DataString);

Saludos ! ;)

newtron 02-12-2011 17:48:40

Cita:

Empezado por gluglu (Mensaje 420277)
Pasa lo que pasa siempre .... que al final, después de buscar varias horas, no encontrar la solución y poner la pregunta aquí en el Club, voy y encuentro la solución por otro lado ... ! :o

La próxima vez pon la pregunta antes y antes acabarás. :D

Casimiro Notevi 02-12-2011 18:22:03

Estas cosas pasan hasta en las mejores familias,
Gracias por poner la respuesta :)


La franja horaria es GMT +2. Ahora son las 14:36:54.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi