我正在尝试将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');
我哪里错了!?
提前感谢您的帮助:)。
答案 0 :(得分:0)
我已经测试了您的代码:标头并不重要,请确保您的php.ini
default_charset = "UTF-8"
此外,您可以忘记将此任务留给网络服务器的Content-Type
标题。
例如,Nginx具有charset UTF-8;
指令。