Hola a todos. Ante todo quiero pediros disculpas si no es el foro adecuado para mi consulta. Estoy usando consultas FOR XML de SQL Server (de aquí lo de mis disculpas) y el contenido de mi pregunta forma parte de mis pruebas para aprender un poco de PHP y HTML. Voy al asunto. Tengo una tabla y un procedimiento almacenado del cual obtengo una variable NVARCHAR con contenido HTML que luego quiero usar en PHP, este es el código SQL Server:
Código:
USE Pruebas
GO
if OBJECT_ID('Pruebas..SP_Prueba') IS NOT NULL DROP PROC SP_Prueba
GO
if OBJECT_ID('Pruebas..CLIENTE') IS NOT NULL DROP TABLE CLIENTE
GO
CREATE TABLE CLIENTE (Cliente smallint,Nombre nvarchar(20),Pais nvarchar(3) )
INSERT INTO CLIENTE VALUES(1,'CLIENT ONE','EUA'),(2,'CLIENTE DOS CON Ñ','ESP')
GO
CREATE PROC SP_Prueba
AS
BEGIN
DECLARE @Values NVARCHAR(MAX);
SET @Values = '<!DOCTYPE html><html lang="es"><head><meta charset="UTF-8"><title>html form</title></head><body><table><form method="post">'
SET @Values += CAST ( (
SELECT CONCAT('Submit','"formaction="func/action_borrar.php?Id=',Cliente) AS [td/button/@type],'Borrar' AS [td/button],'',
Nombre AS [td],'',Pais AS td,''
FROM CLIENTE ORDER BY Cliente
FOR XML PATH('tr'), TYPE
) AS nvarchar(max))
SET @Values += '</form></table></body></html>'
SELECT @Values
END
Si pego la salida del SSMS (SQL Server Management Studio, EXEC SP_Prueba;) en un archivo de texto con extensión .html y lo abro en el Edge la eñe se ve bien, pero si ejecuto el procedimiento como entrada de un archivo .php para formatear una salida HTML donde debía de ir la eñe sale el carácter extraño que sale siempre si el idioma no se configura correctamente que es un rombo con un signo de "?" a pesar de que la salida HTML tiene bien los tags
Código:
<html lang="es"><head><meta charset="UTF-8">
mi código PHP es así
Código:
?php
require_once($_SERVER['DOCUMENT_ROOT'].'/func/connect.php'];
$sql="EXEC SP_Pruebas;";
$res=odbc_exec($con,$sql);
print odbc_result_all($res,"border=0");
?>
me podéis ayudar a solucionarlo ?. Muchas gracias de antemano