我正试图将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;
指令。