Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-02-2017
Rockin Rockin is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 259
Poder: 15
Rockin Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 14-02-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.756
Poder: 8
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
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
Responder Con Cita
  #3  
Antiguo 14-02-2017
Rockin Rockin is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 259
Poder: 15
Rockin Va por buen camino
Envio Cadena

Tanto si envío con utf8_encode como sin eso recibo lo mismo:
E?L ?LA

¿Sabéis que puede ser?
Responder Con Cita
  #4  
Antiguo 14-02-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.756
Poder: 8
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
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?
Responder Con Cita
  #5  
Antiguo 14-02-2017
Rockin Rockin is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 259
Poder: 15
Rockin Va por buen camino
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.

Código Delphi [-]
function TServidorMetodosPrevengos.insertarSeguimientoCliente( id_UsuarioPrevengo, id_ClientePrevengo,id_EstadoVisita,id_Asesoria,
                                                                   contratoFirmado : integer; fechaVisita,horaVisita: TDateTime;
                                                                   incidencia:AnsiString ): String;
begin
try


       with SPInsertarCliente do
        begin
          Close;
          Params[0].Value;
          Params[1].Value := id_UsuarioPrevengo;
          Params[2].Value := id_ClientePrevengo;
          Params[3].Value := id_EstadoVisita;
          Params[4].Value := fechaVisita; 
          Params[5].Value := horaVisita ;  
          Params[6].Value := contratoFirmado ; 
          Params[7].Value:= id_Asesoria ;
          Params[8].Value:= UTF8Decode(incidencia);
          ExecProc;
          Result:= 'OK'
        end;



except
   on E:Exception do
    Result:=  'Error en el alta del seguimiento. Codigo de error: ' + E.Message;

end;

end;
Responder Con Cita
  #6  
Antiguo 14-02-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.756
Poder: 8
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
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
Responder Con Cita
  #7  
Antiguo 14-02-2017
Rockin Rockin is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 259
Poder: 15
Rockin Va por buen camino
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.
Responder Con Cita
  #8  
Antiguo 14-02-2017
Rockin Rockin is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 259
Poder: 15
Rockin Va por buen camino
Al final era tan facil como codificar en el PHP rawurlencode ("EÑE ALá ñóé")
Responder Con Cita
  #9  
Antiguo 14-02-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.756
Poder: 8
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Me alegra que lo hayan podido solucionar y gracias por publicarlo, son pequeños detalles que te salvan tardes enteras
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Descarga de archivo Datasnap REST andresenlared Delphi para la web 1 17-12-2016 12:04:44
DataSnap REST Error HTTP/1.1 500 blaiselaborde Varios 4 09-11-2015 15:31:03
Rest roman La Taberna 11 30-07-2014 16:52:00
Datasnap Rest Server dison Desarrollo en Delphi para Android 3 16-05-2014 09:48:44
REST, Marshaling y \ iuqrul Providers 1 08-11-2013 10:51:33


La franja horaria es GMT +2. Ahora son las 22:43:15.


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