![]() |
PHP / Rest DataSnap
Hola, a ver si alguien me ilumina, tengo un servidor rest datasnap que recibe en unos de sus métodos una cadena enviada por php desde una web, pero no consigo codificar bien las tildes y la ñ. En el php hago: utf8_encode("EÑE ÓLA") lo que me lo convierte a EÑE ÓLA que es en UTF8 y en el servidor rest todas las rutinas que vienen en:
http://docwiki.embarcadero.com/RADSt...rsion_Routines Pero no hay forma, he probado con el tipo de campo varchar y nvarchar de SQL server. Si alguien tiene una idea que puede ser. Gracias. |
Vamos por partes, no podes depurar el servidor y ver "que es lo que recibes"? Despues te peleas con la base de datos para ver como lo guardas.
Tambien es importante el como lo lees desde la BD |
Envio Cadena
Tanto si envío con utf8_encode como sin eso recibo lo mismo:
E?L ?LA ¿Sabéis que puede ser? |
Solo se me ocurre que pruebes usando las clases para encoding, es decir, streams y TEncoding
Yo creería un TStringStream con el string que viene y pasando como encoding TEncoding.UTF8. De todos modos me extraña bastante. No podes publicar el código del servidor? |
Código Servidor
Llega por el php que lo llamo así:
file_get_contents("http://localhost:8080/datasnap/rest/TServidorMetodosPrevengos/insertarSeguimientoCliente/$cadena"); En la variable $cadena concateno todos los parámetros. El código del servidor es muy tonto.
|
Porque usas AnsiString en lugar de string en el servidor?
Por otra parte no soy nada versado en PHP, pero me resulta extraño como invocas al server. Según la documentación deberías estar haciendo un GET a la URL especificada, o POST cuando tenés que mandar parámetros más complejos (ejemplo un JSON, se debe poner en el header y enviar por POST) Revisa esto http://docwiki.embarcadero.com/RADSt...aging_Protocol |
He probado con string, ansistring,widestring, etc...
Los métodos se pueden invocar de varias maneras, esta es una de ellas, también por json, pero la parte php no la hago yo y el chaval que la hace no lo controla bien, era por simplificarlo. Gracias. |
Al final era tan facil como codificar en el PHP rawurlencode ("EÑE ALá ñóé")
|
Me alegra que lo hayan podido solucionar y gracias por publicarlo, son pequeños detalles que te salvan tardes enteras ^\||/^\||/
|
La franja horaria es GMT +2. Ahora son las 00:04:02. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi