Как сохранить csv в utf 8 из excel

Excel в CSV с кодировкой UTF8

У меня есть файл Excel, в котором есть некоторые испанские символы (тильды и т. Д.), Которые мне нужно преобразовать в файл CSV для использования в качестве файла импорта. Однако, когда я делаю Save As CSV, он искажает "специальные" испанские символы, которые не являются символами ASCII. Похоже, что это также происходит с левыми и правыми кавычками и длинными черточками, которые, похоже, исходят от первоначального пользователя, создающего файл Excel в Mac.

Поскольку CSV — это просто текстовый файл, я уверен, что он может обрабатывать кодировку UTF8, поэтому я предполагаю, что это ограничение Excel, но я ищу способ перейти из Excel в CSV и сохранить символы, не входящие в ASCII. неповрежденными.

36 ответов

Простой обходной путь — использовать Google Spreadsheet. Вставьте (значения только при наличии сложных формул) или импортируйте лист, затем загрузите CSV. Я только что попробовал несколько символов, и это работает довольно хорошо.

ПРИМЕЧАНИЕ. Google Sheets имеет ограничения при импорте. Смотрите здесь.

ПРИМЕЧАНИЕ. Будьте осторожны с конфиденциальными данными в Google Sheets.

РЕДАКТИРОВАТЬ: Другая альтернатива — в основном они используют макрос VB или надстройки, чтобы принудительно сохранить как UTF8. Я не пробовал ни одно из этих решений, но они звучат разумно.

Я обнаружил, что приложение для работы с электронными таблицами OpenOffice, Calc, действительно хорошо обрабатывает данные CSV.

В диалоговом окне "Сохранить как. " нажмите "Параметры формата", чтобы получить различные кодировки для CSV. LibreOffice работает так же, как AFAIK.

диалог сохранения калькуляции

Сохраните лист Excel как "Текст Unicode (.txt)". Хорошей новостью является то, что все международные символы находятся в UTF16 (обратите внимание, не в UTF8). Однако новый файл "*.txt" с разделителями TAB, без запятых и, следовательно, не является истинным CSV.

(необязательно) Если вы не можете использовать файл TAB с разделителями для импорта, используйте ваш любимый текстовый редактор и заменяйте символы табуляции запятыми ",".

Импортируйте ваш *.txt файл в целевое приложение. Убедитесь, что он может принять формат UTF16.

Если UTF-16 был правильно реализован с поддержкой кодовых точек, отличных от BMP, вы можете преобразовать файл UTF-16 в UTF-8 без потери информации. Я оставляю это вам, чтобы найти ваш любимый способ сделать это.

Я использую эту процедуру для импорта данных из Excel в Moodle.

Я знаю, что это старый вопрос, но я столкнулся с этим вопросом, когда боролся с теми же проблемами, что и ФП.

Не найдя ни одного из предложенных решений приемлемым вариантом, я решил выяснить, есть ли способ сделать это, просто используя Excel.

К счастью, я обнаружил, что проблема потерянных символов возникает (в моем случае) только при сохранении из формата xlsx в формат csv. Я попытался сохранить файл xlsx сначала в xls, затем в csv. Это действительно сработало.

Пожалуйста, попробуйте и посмотрите, работает ли он для вас. Удачи.

Вы можете использовать команду iconv под Unix (также доступна в Windows как libiconv).

После сохранения в формате CSV под Excel в командной строке введите:

(не забудьте заменить cp1250 вашей кодировкой).

Работает быстро и отлично подходит для больших файлов, таких как база данных почтовых индексов, которую нельзя импортировать в GoogleDocs (ограничение 400 000 ячеек).

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

(1) Откройте файл Excel, где у вас есть информация (.xls,.xlsx)

(2) В Excel выберите "CSV (запятая с разделителями") (*.csv) в качестве типа файла и сохраните в качестве этого типа.

(3) В NOTEPAD (находится в разделе "Программы", а затем "Стандартные" в меню "Пуск") откройте сохраненный файл.csv в блокноте.

(4) Затем выберите -> Сохранить как. и в нижней части окна "Сохранить как" есть поле выбора, помеченное как "Кодировка". Выберите UTF-8 (НЕ используйте ANSI, иначе вы потеряете все акценты и т. Д.). После выбора UTF-8, затем сохраните файл под немного другим именем файла, чем оригинал.

Этот файл находится в UTF-8 и сохраняет все символы и акценты и может быть импортирован, например, в MySQL и другие программы базы данных.

Excel в CSV с кодировкой UTF8

У меня есть файл Excel, который имеет некоторые испанские символы(Тильды и т. д.) что мне нужно преобразовать в файл CSV для использования в качестве файла импорта. Однако, когда я сохраняю как CSV, он искажает "специальные" испанские символы, которые не являются символами ASCII. Кажется, что это также происходит с левыми и правыми кавычками и длинными тире, которые, как представляется, исходят от исходного пользователя, создающего файл Excel в Mac.

поскольку CSV — это просто текстовый файл, я уверен, что он может обрабатывать кодировку UTF8, поэтому я предполагая, что это ограничение Excel, но я ищу способ получить из Excel в CSV и сохранить символы, отличные от ASCII.

30 ответов

простой обходной путь-использовать электронную таблицу Google. Вставьте (значения, только если у вас есть сложные формулы) или импортируйте лист, а затем загрузите CSV. Я просто попробовал несколько персонажей, и это работает довольно хорошо.

Примечание: Google листы имеют ограничения при импорте. См.здесь.

Примечание: будьте осторожны с конфиденциальными данными с Google листов.

EDIT:другая альтернатива — в основном они используют макрос VB или addins для принудительного сохранения как В utf8. Я не пробовал ни одного из этих решений, но они звучат разумно.

Я нашел OpenOfficeприложение электронной таблицы, Calc, действительно хорошо обрабатывает данные CSV.

в "Сохранить как. "диалог, нажмите "Параметры формата", чтобы получить различные кодировки для CSV. LibreOffice работает так же, как AFAIK.

calc save dialog

сохраните лист Excel как " Unicode Text (.формат txt.") Хорошей новостью является то, что все международные символы находятся в UTF16 (обратите внимание, не в UTF8). Однако новое"*.файл " txt " имеет разделители табуляции, а не запятые, и поэтому не является истинным CSV.

(необязательно) если вы не можете использовать файл с разделителями табуляции для импорта, используйте свой любимый текстовый редактор и замените символы табуляции запятыми ",".

импортировать *.txt файл в целевое приложение. Убедитесь, что он может принять формат UTF16.

Если UTF-16 был правильно реализован с поддержкой кодовых точек, отличных от BMP, то вы можете конвертировать файл UTF-16 в UTF-8 без потери информации. Я предоставляю вам найти ваш любимый способ сделать это.

Я использую эту процедуру для импорта данных из Excel в Moodle.

Я знаю, что это старый вопрос, но я случайно наткнулся на этот вопрос, борясь с теми же проблемами, что и OP.

не найдя ни одного из предлагаемых решений жизнеспособным вариантом, я решил выяснить, есть ли способ сделать это только с помощью Excel.

к счастью, я обнаружил, что проблема потерянного символа происходит только (в моем случае) при сохранении из формата xlsx в формат csv. Сначала я попытался сохранить файл xlsx в xls, а затем в csv. Это на самом деле работал.

пожалуйста, дайте ему попробовать и посмотреть, если это работает для вас. Удача.

можно использовать iconv команда под Unix (также доступна в Windows как libiconv).

после сохранения в CSV под Excel в командной строке ставим:

(Не забудьте заменить cp1250 вашей кодировкой).

работает быстро и отлично подходит для больших файлов, таких как база данных почтовых кодов, которые не могут быть импортированы в GoogleDocs (предел 400.000 ячеек).

единственный "простой способ" сделать это заключается в следующем. Во-первых, поймите, что есть разница между тем, что отображается и что скрывается в Excel .CSV-файл.

(1) откройте файл Excel, где у вас есть информация (.XLS, а также .файлы XLSX)

(2) в Excel выберите " CSV (с разделителями-запятыми) (*.csv) как тип файла и сохранить как этот тип.

(3) в блокноте (найдено в разделе "программы", а затем аксессуары в Start меню), откройте сохраненный .CSV-файл в блокноте

(4) затем выберите — > Сохранить как..и в нижней части окна" сохранить как "есть поле выбора, помеченное как"кодировка". Выберите UTF-8 (Не используйте ANSI или вы потеряете все акценты и т. д.). После выбора UTF-8 сохраните файл в несколько отличающемся от исходного имени.

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

этот ответ взят из этот форум.

еще один, который я нашел полезным: "цифры " позволяет настройки кодирования при сохранении в формате CSV.

вы можете сделать это на современной машине Windows без стороннего программного обеспечения. Этот метод надежен и будет обрабатывать данные, которые включают кавычки, символы табуляции, символы CJK и т. д.

1. Сохранить из Excel

в Excel сохраните данные в file.txt С помощью типа Unicode Text (*.txt) .

2. Запустить PowerShell

Run powershell из меню "Пуск".

3. Загрузить файл в В PowerShell

4. Сохраните данные как CSV

" nevets1219 "прав насчет Google docs, однако если вы просто" импортируете " файл, он часто не конвертирует его в UTF-8.

но если вы импортируете CSV в существующую электронную таблицу Google, она преобразуется в UTF-8.

  • на главном экране документов (или диска) Нажмите кнопку" Создать "и выберите"электронная таблица"
  • в меню " Файл "выберите"Импорт"
  • Нажмите "Выбрать Файл"
  • выбрать "Заменить электронную таблицу"
  • выбрать любой символ, который вы используете в качестве разделителя
  • Нажмите Кнопку "Импорт"
  • в меню "Файл" выберите "Загрузить как" — > CSV (текущий лист)

полученный файл будет в UTF-8

для тех, кто ищет полностью программное (или, по крайней мере, серверное) решение, я имел большой успех, используя инструмент xls2csv catdoc.

установить конверотора catdoc, преобразующего файлы:

это очень быстро.

обратите внимание, что важно, чтобы вы включили -d utf-8 флаг, иначе он будет кодировать вывод по умолчанию cp1252 кодировка, и вы рискуете потерять информацию.

обратите внимание, что xls2csv также работает только с .xls файлы, он не работает с .xlsx файлы.

Ссылка на основную публикацию