Задать вопрос
@Nik_1011

Как вывести файл csv в utf-8 при помощи iconv?

Здравствуйте.

Есть файл csv в кодировке windows-1251. Попробовал 2 варианта для перевода в utf-8:
<?php

$row = 1;
if (($handle = fopen("111.csv", "r")) !== FALSE) {
  while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
    $num = count($data);
    echo "<p> $num fields in line $row: <br /></p>\n";
    $row++;
    for ($c=0; $c < $num; $c++) {
        echo iconv("UTF-8", "Windows-1251", $data[$c]) . "<br />\n";
    }
  }
  fclose($handle);
}

60e55bee72899958474270.png

<?php
header('Content-Type: text/html; charset=UTF-8');

$row = 1;
if (($handle = fopen("111.csv", "r")) !== FALSE) {
  while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
    $data = array_map("utf8_encode", $data);
    $num = count($data);
    echo "<p> $num fields in line $row: <br /></p>\n";
    $row++;
    for ($c=0; $c < $num; $c++) {
        echo $data[$c] . "<br />\n";
    }
  }
  fclose($handle);
}

60e55bfbcc129086958050.png

Как сделать лучше?
  • Вопрос задан
  • 242 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@Nik_1011 Автор вопроса
Решение
1) Перекодировать в UTF-8(без BOM) в Notepad++
2) Данный код
$row = 1;
if (($handle = fopen("1114.csv", "r")) !== FALSE) {
  while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
    $num = count($data);
    echo "<p> $num fields in line $row: <br /></p>\n";
    $row++;
    for ($c=0; $c < $num; $c++) {
        echo $data[$c] . "<br />\n";
    }
  }
  fclose($handle);
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы