php - Excel 生成的 CSV,特殊字符消失 (ÆØÅ) - PHP

标签 php encoding csv utf-8

我有一些 csv 文件需要使用 php 导入到我们的系统中。我住在挪威,我们有 3 个特殊字符(æøå 和大写的 ÆØÅ)。问题是大写版本从我的字符串中消失了。小写字母显示为 ?,但使用 utf8_encode 时,我得到了正确的字母。

我正在使用以下函数导入和读取 csv 文件。转储 $arr

时,ÆØÅ 字母已经消失
$row = 1;
$arr = array();
if (($handle = fopen($imp['importBreddegave'], "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
        $num = count($data);
        $row++;

        for ($c=0; $c < $num; $c++) {
            $arr[$row][$c] = $data[$c];
        }
    }

    fclose($handle);
}

我想我需要以某种方式指定字符编码,但我不知道如何做。据我所知,按照标准,cvs 文件由 WINDOWS-1257 编码。我页面的其余部分使用 UTF-8

编码

有人有什么巧妙的技巧吗?

最佳答案

如果您的页面输出 UTF-8 数据(或更好:声明它通过 HTTP header /元字符集输出 UTF-8),您应该确保输出的数据也是 UTF-8。 您在 Windows-1257 中输出数据,尽管您的页面声明它是 UTF-8,导致字符无法正确呈现。

使用 utf8_encode 将它们转换为 utf8(更好,因为 utf8_encode 假定您的源字符集是 ISO-8859-1,而事实并非如此)iconv ( http://php.net/iconv )

关于php - Excel 生成的 CSV,特殊字符消失 (ÆØÅ) - PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8210015/

相关文章:

python - 如何获取 csv 文件的特定字段?

python - 在 CSV 文件 python 中添加新行和现有迭代行

PHP session : SESSION Variables Automatically Reset after Unserialize()

php - 检查日期是工作日还是周末?

java - 我无法在 java 文件中写入一些字符(编码问题)

windows-phone-7 - 这个字节数组是怎么回事?

PHP MySQL 从 CSV 文件上传加载数据 INFILE

php - Laravel 中的 eval() 不执行字符串

php - 如何在laravel上编写查询sql

python - 二进制数据到 Unicode