gpt4 book ai didi

php - 使用 fgetcsv 将 Excel csv 导出到 php 文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:57:58 25 4
gpt4 key购买 nike

我正在使用 excel 2010 professional plus 创建一个 excel 文件。稍后我尝试将其导出为 UTF-8 .csv 文件。我通过将其保存为 CSV(符号分隔.....对不起,我不知道那里的确切措辞来做到这一点但我没有英文版,我担心它的翻译与 1:1 不同)。在那里,我单击工具->weboptions 并选择 unicode (UTF-8) 作为编码。示例.csv如下:

ID;englishName;germanName
1;Austria;Österreich

到目前为止一切顺利,但如果我现在用我的 php 代码打开文件:

 header('Content-Type: text/html; charset=UTF-8');
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "UTF-8");
setlocale(LC_ALL, 'de_DE.utf8');
$fp=fopen($filePathName,'r');
while (($dataRow= fgetcsv($fp,0,";",'"') )!==FALSE)
{
print_r($dataRow);
}
  • 我得到:屏幕上的结果为 �sterreich(因为这是“错误”,所以我删除了结果的所有其他部分)。
  • 如果我用 notepad++ 打开文件并查看编码,我会看到“ANSI”而不是 UTF-8。
  • 如果我将 notepad++ 中的编码更改为 UTF8.... ö,ä,... 将替换为特殊字符,我必须手动更正这些字符。

如果我走另一条路,用 notedpad++ 创建一个新的 UTF-8 文件,并放入与 excel 文件中相同的数据,当我用 php 文件打开它时,屏幕上会显示“Österreich”。

现在我的问题是,为什么它不能与 excel 一起使用,因此我在这里做错了什么?还是我忽略了什么?

编辑:由于程序最终会安装在客户提供的windows服务器上,在不需要安装额外工具的情况下需要一个解决方案(php 库,......没问题,但必须安装 vm-ware 或 cygwin,......不是)。此外,服务器上不会本地安装 excel(或 office),因为客户将能够通过文件上传对话框(对话框本身不是问题的一部分,因为我知道如何处理这些问题,此外,当我创建一个 excel 文件并将其转换为 .csv 在本地安装了 excel 的测试机器上时,我偶然发现了这个问题。

谢谢

最佳答案

From PHP DOC

Locale setting is taken into account by this function. If LANG is e.g. en_US.UTF-8, files in one-byte encoding are read wrong by this function.

你可以试试

header('Content-Type: text/html; charset=UTF-8');
$fp = fopen("log.txt", "r");
echo "<pre>";
while ( ($dataRow = fgetcsv($fp, 1000, ";")) !== FALSE ) {
$dataRow = array_map("utf8_encode", $dataRow);
print_r($dataRow);
}

输出

Array
(
[0] => ID
[1] => englishName
[2] => germanName
)
Array
(
[0] => 1
[1] => Austria
[2] => Österreich
)

关于php - 使用 fgetcsv 将 Excel csv 导出到 php 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13266146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com