ODBC php Excel 编码问题

ODBC php Excel Encoding Issues

我正在使用 php 与 Excel 文件建立 ODBC 连接。然而,当我遇到像“~”、“^”、“´”这样的字符时,它们看起来像这样乱七八糟:

Mês -> M?s

Formação -> Forma??o

我正在执行以下 utf-8 处理只是为了获取列名:

$con = odbc_connect($odbcName, $dbUser, $dbPassword)
or die('failed');

//the Set NAMES utf8 doesn't work with excel.
//$try = odbc_exec($con, "SET NAMES utf8");

$rs = odbc_exec($con, utf8_encode($dbQuery))
or die('Erro no sql');
$intNumField = odbc_num_fields($rs);

for($i=1; $i<=$intNumField;$i++){
    $columns[] = utf8_decode(odbc_field_name($rs,$i));
}

文件本身是使用 Web 选项 -> 编码 -> Unicode (UTF-8) 保存的。

我在 PHP 还应该做些什么吗?

提前致谢!

万一有人遇到和我一样的问题,我用以下方法解决了:

  1. 在 excel 文件中将编码更改为西欧(Windows-1252 为 UTF-8);
  2. 在 PHP 中从 Windows-1252 转换为 UTF-8 -> $value = iconv("Windows-1252", "UTF-8", $auxVar);
  3. 值具有正确的编码。

由于某些原因,Excel 中的 UTF-8 编码没有得到正确处理。