编码:将excel电子表格中的特殊字符导出到php数组中


Encoding: exporting special characters from an excel spreadsheet into a php array

我正试图将excel电子表格中的信息获取到PHP数组中。问题是电子表格中的条目包括特殊重音字符,如á和ž等。

我做的第一件事是将电子表格导出为.txt文件。我确保单击工具-->web选项,以便将字符编码设置为UTF-8。

当我用记事本或记事本++打开.txt文件时,许多(但不是全部)重音字符都被替换为"?"。

例如:兹拉坦·伊布拉希莫维奇---->Zlatan Ibrahimovi?

然而,一些角色仍然没有受到影响:Carlos Tévez

此外,当我试图将.txt文件导入PHP数组时,剩下的字符也变成了问号!

以下代码用于打印列表中的前4个名称:

$file = fopen("players/player_names.txt", "r") or exit("Unable to open file!");
$line_array = array();
$x = 0;
while(!feof($file))
{
array_push($line_array, fgets($file));
}
fclose($file);
$name_array = array();
for ($i =1; $i < 4; $i++ )
{
echo $line_array[$i];
echo "<br/>";   
}

但是,会显示以下内容:

Sergio Ag�ero伊布?Carlos T�vez苏�rez

看起来正常的问号是"?"在从excel到.txt的转换过程中产生,其余重音字符的黑色背景问号�'将.txt文件导入PHP时生成。

我已经确保PHP文件的字符编码设置为UTF-8,并使用以下内容:

header ('Content-type: text/html; charset=utf-8');

我哪里错了!?

感谢您提前提供的帮助:)。

我已经测试了您的代码:头并不重要,请确保您的php.ini 中有

default_charset = "UTF-8"

此外,您可以忘记Content-Type标头将此任务留给Web服务器。例如,Nginx具有charset UTF-8;指令。