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

时间:2013-08-30 11:48:57

标签: php excel utf-8 character-encoding

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

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

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

例如: ZlatanIbrahimović----> Zlatan Ibrahimovi?

但是,有些角色不受影响: CarlosTé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/>";   
}

但是,会显示以下内容:

SergioAg ero Zlatan Ibrahimovi? 卡洛斯·特维兹 LuisSu rez

看来正常的问号是'?'正在从excel到.txt的传输中生成,并且在将.txt文件导入PHP时会生成剩余重音字符' '的黑色背景问号。

我确保将PHP文件的字符编码设置为UTF-8,其中包含以下内容:

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

我哪里错了!?

提前感谢您的帮助:)。

1 个答案:

答案 0 :(得分:0)

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

default_charset = "UTF-8"

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