Как заставить Excel правильно интерпретировать файл UTF-8 с разделителем пользовательских полей?

766
Balmipour

Я поддерживаю устаревший инструмент PHP, который выводит CSV-файлы с пользовательскими разделителями.

Это было хорошо раньше, потому что файлы были прочитаны только программами. Но теперь, когда кто-то пытается открыть их с помощью Excel, он должен использовать довольно неудобный « импорт пользовательского текстового файла » через вкладку данных. Для КАЖДОГО файла.

Моя первая проблема заключалась в том, что Excel не распознает кодировку (потеря накачанных символов и т. Д.).
Я добавил спецификацию, чтобы Excel заметил ее UTF-8, который работал

Моя вторая проблема заключается в том, что файлы используют определенный разделитель (в настоящее время "¶"). Я вспомнил хитрость для этого: добавление «sep =» в первой строке CSV-файла сообщает Excel, что вы используете символ «,» в качестве пользовательского разделителя.

Теперь самое интересное:

  • Добавление как спецификации, так и пользовательского разделителя кажется слишком сложным для Excel. Похоже, мне приходится выбирать между открытием файла UTF-8 и открытием с помощью пользовательского разделителя, а не обоих вариантов одновременно (£ $% §¤ @!), Т. Е.
    Когда распознается UTF-8, поля не разделяются, когда они правильно разделены, кодировка прикручена
  • Кажется, что Excel не обрабатывает много других «пользовательских» разделителей, кроме «,» и «;». Лучшим рабочим персонажем, которого я нашел, была обратная кавычка (`).
    Сначала я подумал, что это может быть потому, что другие символы, которые я использовал, были (нераспознанные) UTF-8, но он даже не работал с простым «♠», который является символом # 6 базовой таблицы ASCII.

Похоже, что мой лучший вариант на данный момент - погрузиться в код и попытаться добавить опции для указания параметра «определителя» для включения моих полей, что может позволить мне использовать символ по умолчанию («;») в качестве разделителя, но я чувствую, как ходить по яйцам с изменением такого кода, который был в производстве в течение многих лет.
и я даже не уверен, что у меня не возникнет проблем с самим классификатором.

У кого-нибудь есть более надежное решение?

0

0 ответов на вопрос

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