0

Estoy pintando una tabla de SQL Server, pero no reconoce los acentos. En la tabla se muestran bien

La conexión la hago por odbc

$con = odbc_connect("*************");
$sql = "SELECT CODIGO, NOMBRE FROM [DATA].[imp].[pctsx]";
odbc_exec($con, utf8_decode($sql));

array(
    [ES] => Array
        (
            [CODIGO] => ES
            [NOMBRE] => ESPA�A
        )

    [IS] => Array
        (
            [CODIGO] => IS
            [NOMBRE] => ISLANDIA
        )
)
Pelukosa
  • 1,267
  • 4
  • 12
  • 33

1 Answers1

1

Lo he solucionado añadiendo utf8_encode()

while ($row = ODBC::nextRecord($rs)) {  
    $row["NOMBRE"] = utf8_encode($row["NOMBRE"]);
    $paises[$row["CODIGO"]] = $row;
}
Pelukosa
  • 1,267
  • 4
  • 12
  • 33
  • 1
    ¡Al fin puedo agregar comentarios! Sabes, no te conformes con eso. Yo estoy trabajando en un sistema lleno de parches de "utf8_encodes" y "utf8_decodes". No estoy usando SQLServer, así que no te puedo ayudar más, pero eso. Evita llenar de parches que vuelven el código engorroso. – Ororok Jul 10 '20 at 10:20
  • Como bien dice @Ororok, has optado por una solución precaria, que te mantendrá enganchado a `utf8_encode` por **cada dato** que necesites mostrar. Revisa [esta respuesta](https://es.stackoverflow.com/a/59510/29967) donde se aborda el problema de una manera global, aportando mejores soluciones. – A. Cedano Jul 10 '20 at 10:55