2014-09-09 4 views
0

Я пытаюсь загрузить кучу csv-файлов в базу данных. Разбор файлов и ввод данных - все отлично работает, за исключением некоторых кодировок файлов.Изменение кодировки файла csv в php

UTF-8 файлы работают нормально, и большинство файлов - это формат. Однако некоторые файлы находятся в ASCII, и эти файлы не загружаются должным образом.

Есть ли способ проверить файл для его кодирования и преобразовать кодировку перед использованием данных? Я играл с mb_convert_encoding и iconv, но все они берут строку в качестве входных данных. скорее всего, проверит файл и конвертирует сразу с места в карьер, вместо того, чтобы проверять его по строкам, когда я беру данные.

спасибо.

+0

'mb_detect_encoding()', но это не 100% надежным. получение неправильной кодировки источника, а затем выполнение преобразования, скорее всего, приведет к повреждению файла. –

+0

Я пробовал это, и это не сработало. На самом деле ничего, что я пробовал, не работал, даже преобразования строк. – eignhpants

+0

Не могли бы вы привести пример файла «ASCII», который не загружается правильно? Для ASCII практически невозможно правильно загрузить нагрузку, особенно если UTF-8 загружается должным образом. Это может быть файл CP-1252, [который я написал длинный ответ здесь] (http://stackoverflow.com/questions/22683132/php-cp1252-windows-1252-conversion-to-utf-8/23250083# 23250083). – NobleUplift

ответ

0

Try ниже код:

<?php 
$handle = fopen ("temp.csv","r"); 
while ($data = fgetcsv ($handle, 1000, ";")) { 
     $data = array_map("utf8_encode", $data); 
} 
?> 
Смежные вопросы