Jump to content
  • 0

Перекодировка файла в <input type='file'>


AlexDavygora
 Share

Question

Задача:

На клиенте имеется csv файл. Данные из него необходимо распарсить и поместить в форму на странице. Кодировка файла ANSI, разделитель ";"

 

Решение:

Загрузить файл в <input type="file"> и распарсить. В качестве парсера использую Papaparse.

 

Проблема:

Русские символы превращаются в �.

 

Вопрос:

Как изменить кодировку файла после загрузки его в браузер? Вариант с перекодировка файла руками не подходит. Пользователи системы дальше MSofice и IE не полезут.

 

Заранее спасибо за ответ. Надеюсь удалось описать проблему.

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0
Задача: На клиенте имеется csv файл. Данные из него необходимо распарсить и поместить в форму на странице. Кодировка файла ANSI, разделитель ";" Решение: Загрузить файл в и распарсить. В качестве парсера использую Papaparse.

 

о_О а что мешает просто использовать file()+str_getcsv() или просто fgetcsv() для разбора файла?

 

Проблема: Русские символы превращаются в ���.

 

перекодировать содержимое файла в php после загрузки или перед разбором для этого есть средства, как минимум есть iconv() и mb_convert_encoding()

Link to comment
Share on other sites

  • 0

 

Задача: На клиенте имеется csv файл. Данные из него необходимо распарсить и поместить в форму на странице. Кодировка файла ANSI, разделитель ";" Решение: Загрузить файл в и распарсить. В качестве парсера использую Papaparse.

 

о_О а что мешает просто использовать file()+str_getcsv() или просто fgetcsv() для разбора файла?

 

 

 

Проблема: Русские символы превращаются в ���.

 

перекодировать содержимое файла в php после загрузки или перед разбором для этого есть средства, как минимум есть iconv() и mb_convert_encoding()

 

Я не использую PHP. Приложение разрабатывается на Oracle Application Express 5. Меня интересует решение данной проблемы исключительно средствами js.

Link to comment
Share on other sites

  • 0

а тогда https://developer.mozilla.org/ru/docs/Web/API/FileReader

 

Только я не понимаю что мешает перекодировать файл на сервере, и не важно на чем написана серверная сторона

В этом то и смысл что в данной реализации я хотел отказаться от заливки файла на сервер. Загрузка csv должна быть визуально видна пользователю, следовательно мне нужно будет:

1. залить файл на сервер,

2. распарсить,

3. сформировать тот же json например

4. отправить его обратно на клиент,

5. там распарсить json

6. и только потом вывести пользователю нужную для него инфу которая в результате снова улетит на сервер, но уже в бд.

 

Реализация через papaparse фактически первые 4 пункта убирает+ уменьшает количество модулей системы и упрощает процесс установки(продукт пакетный)

 

Спасибо за ссылку!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy