我有一个使用odbc连接器建立的数据库连接。问题是我有一个带有特殊字符(例如重音符号)的字段,但无法识别它们。
这是我的网络服务:
<?php
define('CHARSET','UTF-8');
header('Content-Type: text/html; charset=UTF-8');
$usuario='';
$pass='';
$dsn='Tr3';
$conexion = odbc_connect($dsn,$usuario,$pass);
$sql="select total, name, domin from F_VENTA where Ve_FirmaCamion=true";
$rs = odbc_exec($conexion, $sql);
if (!$rs) {
exit("Error al conectar la base de datos");
}
$datos = array();
$i = 1;
while($row = odbc_fetch_array($rs)) {
$datos[] = $row;
$i++;
}
odbc_close($conexion);
$json = json_encode($datos);
echo $json;
?>
这很好用。但是,如果“名称”字段具有某些特殊字符(重音符号,ñ,Ç...),则Web服务不会向我返回任何信息。 json让我空白。
我尝试过:
utf8_decode($json);
和
$cadena= htmlentities($json, ENT_QUOTES, "UTF-8");
但不起作用。
有什么建议吗?谢谢!
答案 0 :(得分:0)
如果其他人遇到问题,我会提出解决方案。
我设法解决了在将数据编码为json之前,是否将mb_convert_encoding()
方法传递给遍历数据库的数据。所以我将它们编码在while循环中:
while($row = odbc_fetch_array($rs)) {
$datos[] = mb_convert_encoding($row, "UTF-8", "iso-8859-1");
$i++;
}