【问题标题】:Change encoding of a csv file in php在 php 中更改 csv 文件的编码
【发布时间】:2014-09-09 21:54:30
【问题描述】:

我正在尝试将一堆 csv 文件加载到数据库中。解析文件和输入数据都很好......除了一些文件编码给我带来了麻烦。

UTF-8 文件工作正常,大多数文件都是这种格式。但是,有些文件位于 ASCII 中,并且这些文件无法正确加载。

有没有办法检查文件本身的编码,并在使用数据之前转换编码?我一直在玩mb_convert_encodingiconv,但这些都需要一个字符串作为输入。宁愿检查文件并立即转换,而不是在我获取数据时逐行检查。

谢谢。

【问题讨论】:

  • mb_detect_encoding(),但它不是 100% 可靠的。获取错误的源编码然后进行转换可能只会损坏文件。
  • 我试过了,但没有用。事实上,我尝试过的任何事情都没有奏效,即使是字符串转换。
  • 您能举一个“ASCII”文件加载不正确的例子吗? ASCII 无法正确加载几乎是不可能的,尤其是在 UTF-8 正确加载的情况下。它可能是一个 CP-1252 文件,which I wrote a long answer on here

标签: php csv encoding utf-8 ascii


【解决方案1】:

试试下面的代码:

<?php
$handle = fopen ("temp.csv","r");
while ($data = fgetcsv ($handle, 1000, ";")) {
        $data = array_map("utf8_encode", $data);
}
?>

【讨论】:

    猜你喜欢
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多