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 还应该做些什么吗?
提前致谢!
万一有人遇到和我一样的问题,我用以下方法解决了:
- 在 excel 文件中将编码更改为西欧(Windows-1252 为 UTF-8);
- 在 PHP 中从 Windows-1252 转换为 UTF-8 -> $value = iconv("Windows-1252", "UTF-8", $auxVar);
- 值具有正确的编码。
由于某些原因,Excel 中的 UTF-8 编码没有得到正确处理。
我正在使用 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 还应该做些什么吗?
提前致谢!
万一有人遇到和我一样的问题,我用以下方法解决了:
- 在 excel 文件中将编码更改为西欧(Windows-1252 为 UTF-8);
- 在 PHP 中从 Windows-1252 转换为 UTF-8 -> $value = iconv("Windows-1252", "UTF-8", $auxVar);
- 值具有正确的编码。
由于某些原因,Excel 中的 UTF-8 编码没有得到正确处理。