0

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

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

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

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

然而,一些角色没有受到影响:卡洛斯·特维斯

此外,当我尝试将 .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/>";   
}

但是,会显示以下内容:

塞尔吉奥·阿格罗·兹拉坦·伊布拉希莫维?卡洛斯·特维斯 路易斯·苏雷斯

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

我已确保 PHP 文件的字符编码设置为 UTF-8,如下所示:

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

我哪里错了!?

提前感谢您的帮助:)。

4

1 回答 1

0

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

default_charset = "UTF-8"

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

于 2013-08-30T12:01:54.613 回答