2013-06-11 2 views
0

У меня есть глупая проблема. Я использую программное обеспечение для экспорта .csv-файлов, а результат - странный форматированный текст. Когда я пытаюсь разобраться с ними в PHP, все идет не так.PHP: кодировка файла csv?

Я скопирую и вставляю текст в MS WORD: между буквами есть странный символ.

В php я попытался преобразовать его, используя utf8_decode/utf8_encode, iconv («ISO-8859-1», «WINDOWS-1252», $ str) ... напрасно.

Я думаю, что это кодированный utf16 текст, но я не уверен в этом. Я пробовал некоторые функции для декодирования utf16, тоже напрасно.

У кого-то есть решение исправить это?

+0

Какое программное обеспечение вы используете для экспорта? Можете ли вы предоставить образец файла? –

+0

Я использую программное обеспечение электронной почты «Sarbacane». Для образца файла, как мы можем поместить образцы файлов в Stackoverflow ?? –

+0

Я помещаю файл на сервер: http://www.lesudtest.com/NL_JGFR_130326_bac.csv. –

ответ

1

Ваше предположение, что правильно:

file -i NL_JGFR_130326_bac.csv 
NL_JGFR_130326_bac.csv: text/plain; charset=utf-16le 

Вы, вероятно, может использовать расширение PHP мультибайтовыми работать с UTF-16: http://php.net/manual/en/ref.mbstring.php

+0

Спасибо. Знаете ли вы функцию, которая может преобразовать мой файл (или строку в нем) в utf8, например. Я не могу найти ничего подобного в многобайтовых строковых функциях. –

+0

Это должно быть так же просто, как mb_convert_encoding ($ s, "UTF-16LE", "UTF-8"); хотя это только производит мусор, когда я его пробовал. Может быть, «файл -i» был неправильным или у вас смешанные кодировки? – lathspell

+0

mb_convert_encoding ($ s, "UTF-16LE", "UTF-8"); является кодирование UTF8 в UTF16. Обратное производит мусор, вы правы. Наверное, я общался с этими файлами вручную. Мы не можем найти решение каждый раз! –

Смежные вопросы