hi i’m using ruby on rails for csv generation. In our application we plan to go for the multi language(I18n) and we faced an issue while viewing I18n content in the CSV file of windows excel.
Was fine with Linux (Ubuntu) and mac.
We identified that windows excel need to be imported the data again to view the actual data. While import we will get more options to choose character set.
But this can’t be educated for each and every user, so solution we looking for is to open just by double click.
Then we identified the way of showing data by open mode and bom in windows excel with the help of aghuddleston gist. Added at reference.
Example I18n content
In Mac and Linux
Swedish : Förnamn
English : First name
In Windows
Swedish : Förnamn
English : First name
def user_information_report(report_file_path, user_id)
user = User.find(user_id)
I18n.locale = user.current_lang
open_mode = "w+:UTF-16LE:UTF-8"
bom = "xEFxBBxBF"
body user, open_mode, bom
end
def headers
headers = [
"ID", "SDN ID",
I18n.t('sys_first_name'), I18n.t('sys_last_name'), I18n.t('sys_dob'),
I18n.t('sys_gender'), I18n.t('sys_email'), I18n.t('sys_address'),
I18n.t('sys_city'), I18n.t('sys_state'), I18n.t('sys_zip'),
I18n.t('sys_phone_number')
]
end
def body tenant, open_mode, bom
File.open(report_file_path, open_mode) do |f|
csv_file = CSV.generate(col_sep: "t") do |csv|
csv << headers
tenant.patients.find_each(batch_size: 10) do |patient|
csv << [
patient.id, patient.patientid,
patient.first_name, patient.last_name, "#{patient.dob}",
"#{translate_gender(patient.gender)}", patient.email, "#{patient.address_1.to_s} #{patient.address_2.to_s}",
"#{patient.city}", "#{patient.state}", "#{patient.zip}",
"#{patient.phone_number}"
]
end
end
f.write bom
f.write(csv_file)
end
end
Important things to note here is open mode and bom
open_mode = «w+:UTF-16LE:UTF-8»
bom = «xEFxBBxBF»
Before writing the CSV insert BOM
f.write bom
f.write(csv_file)
Windows and Mac
File can be opened directly by double clicking.
Linux (ubuntu)
While opening a file ask for the separator options -> choose “TAB”
Содержание
- Работа с кодировкой текста
- Способ 1: изменение кодировки с помощью Notepad++
- Способ 2: применение Мастера текстов
- Способ 3: сохранение файла в определенной кодировке
- Вопросы и ответы
С потребностью менять кодировку текста часто сталкиваются пользователи, работающие браузерах, текстовых редакторах и процессорах. Тем не менее, и при работе в табличном процессоре Excel такая необходимость тоже может возникнуть, ведь эта программа обрабатывает не только цифры, но и текст. Давайте разберемся, как изменить кодировку в Экселе.
Урок: Кодировка в Microsoft Word
Работа с кодировкой текста
Кодировка текста – эта набор электронных цифровых выражений, которые преобразуются в понятные для пользователя символы. Существует много видов кодировки, у каждого из которых имеются свои правила и язык. Умение программы распознавать конкретный язык и переводить его на понятные для обычного человека знаки (буквы, цифры, другие символы) определяет, сможет ли приложение работать с конкретным текстом или нет. Среди популярных текстовых кодировок следует выделить такие:
- Windows-1251;
- KOI-8;
- ASCII;
- ANSI;
- UKS-2;
- UTF-8 (Юникод).
Последнее наименование является самым распространенным среди кодировок в мире, так как считается своего рода универсальным стандартом.
Чаще всего, программа сама распознаёт кодировку и автоматически переключается на неё, но в отдельных случаях пользователю нужно указать приложению её вид. Только тогда оно сможет корректно работать с кодированными символами.
Наибольшее количество проблем с расшифровкой кодировки у программы Excel встречается при попытке открытия файлов CSV или экспорте файлов txt. Часто, вместо обычных букв при открытии этих файлов через Эксель, мы можем наблюдать непонятные символы, так называемые «кракозябры». В этих случаях пользователю нужно совершить определенные манипуляции для того, чтобы программа начала корректно отображать данные. Существует несколько способов решения данной проблемы.
Способ 1: изменение кодировки с помощью Notepad++
К сожалению, полноценного инструмента, который позволял бы быстро изменять кодировку в любом типе текстов у Эксель нет. Поэтому приходится в этих целях использовать многошаговые решения или прибегать к помощи сторонних приложений. Одним из самых надежных способов является использование текстового редактора Notepad++.
- Запускаем приложение Notepad++. Кликаем по пункту «Файл». Из открывшегося списка выбираем пункт «Открыть». Как альтернативный вариант, можно набрать на клавиатуре сочетание клавиш Ctrl+O.
- Запускается окно открытия файла. Переходим в директорию, где расположен документ, который некорректно отобразился в Экселе. Выделяем его и жмем на кнопку «Открыть» в нижней части окна.
- Файл открывается в окне редактора Notepad++. Внизу окна в правой части строки состояния указана текущая кодировка документа. Так как Excel отображает её некорректно, требуется произвести изменения. Набираем комбинацию клавиш Ctrl+A на клавиатуре, чтобы выделить весь текст. Кликаем по пункту меню «Кодировки». В открывшемся списке выбираем пункт «Преобразовать в UTF-8». Это кодировка Юникода и с ней Эксель работает максимально корректно.
- После этого, чтобы сохранить изменения в файле жмем на кнопку на панели инструментов в виде дискеты. Закрываем Notepad++, нажав на кнопку в виде белого крестика в красном квадрате в верхнем правом углу окна.
- Открываем файл стандартным способом через проводник или с помощью любого другого варианта в программе Excel. Как видим, все символы теперь отображаются корректно.
Несмотря на то, что данный способ основан на использовании стороннего программного обеспечения, он является одним из самых простых вариантов для перекодировки содержимого файлов под Эксель.
Способ 2: применение Мастера текстов
Кроме того, совершить преобразование можно и с помощью встроенных инструментов программы, а именно Мастера текстов. Как ни странно, использование данного инструмента несколько сложнее, чем применение сторонней программы, описанной в предыдущем методе.
- Запускаем программу Excel. Нужно активировать именно само приложение, а не открыть с его помощью документ. То есть, перед вами должен предстать чистый лист. Переходим во вкладку «Данные». Кликаем на кнопку на ленте «Из текста», размещенную в блоке инструментов «Получение внешних данных».
- Открывается окно импорта текстового файла. В нем поддерживается открытие следующих форматов:
- TXT;
- CSV;
- PRN.
Переходим в директорию размещения импортируемого файла, выделяем его и кликаем по кнопке «Импорт».
- Открывается окно Мастера текстов. Как видим, в поле предварительного просмотра символы отображаются некорректно. В поле «Формат файла» раскрываем выпадающий список и меняем в нем кодировку на «Юникод (UTF-8)».
Если данные отображаются все равно некорректно, то пытаемся экспериментировать с применением других кодировок, пока текст в поле для предпросмотра не станет читаемым. После того, как результат удовлетворит вас, жмите на кнопку «Далее».
- Открывается следующее окно Мастера текста. Тут можно изменить знак разделителя, но рекомендуется оставить настройки по умолчанию (знак табуляции). Жмем на кнопку «Далее».
- В последнем окне имеется возможность изменить формат данных столбца:
- Общий;
- Текстовый;
- Дата;
- Пропустить столбец.
Тут настройки следует выставить, учитывая характер обрабатываемого контента. После этого жмем на кнопку «Готово».
- В следующем окне указываем координаты левой верхней ячейки диапазона на листе, куда будут вставлены данные. Это можно сделать, вбив адрес вручную в соответствующее поле или просто выделив нужную ячейку на листе. После того, как координаты добавлены, в поле окна жмем кнопку «OK».
- После этого текст отобразится на листе в нужной нам кодировке. Остается его отформатировать или восстановить структуру таблицы, если это были табличные данные, так как при переформатировании она разрушается.
Способ 3: сохранение файла в определенной кодировке
Бывает и обратная ситуация, когда файл нужно не открыть с корректным отображением данных, а сохранить в установленной кодировке. В Экселе можно выполнить и эту задачу.
- Переходим во вкладку «Файл». Кликаем по пункту «Сохранить как».
- Открывается окно сохранения документа. С помощью интерфейса Проводника определяем директорию, где файл будет храниться. Затем выставляем тип файла, если хотим сохранить книгу в формате отличном от стандартного формата Excel (xlsx). Потом кликаем по параметру «Сервис» и в открывшемся списке выбираем пункт «Параметры веб-документа».
- В открывшемся окне переходим во вкладку «Кодировка». В поле «Сохранить документ как» открываем выпадающий список и устанавливаем из перечня тот тип кодировки, который считаем нужным. После этого жмем на кнопку «OK».
- Возвращаемся в окно «Сохранения документа» и тут жмем на кнопку «Сохранить».
Документ сохранится на жестком диске или съемном носителе в той кодировке, которую вы определили сами. Но нужно учесть, что теперь всегда документы, сохраненные в Excel, будут сохраняться в данной кодировке. Для того, чтобы изменить это, придется опять заходить в окно «Параметры веб-документа» и менять настройки.
Существует и другой путь к изменению настроек кодировки сохраненного текста.
- Находясь во вкладке «Файл», кликаем по пункту «Параметры».
- Открывается окно параметров Эксель. Выбираем подпункт «Дополнительно» из перечня расположенного в левой части окна. Центральную часть окна прокручиваем вниз до блока настроек «Общие». Тут кликаем по кнопке «Параметры веб-страницы».
- Открывается уже знакомое нам окно «Параметры веб-документа», где мы проделываем все те же действия, о которых говорили ранее.
Теперь любой документ, сохраненный в Excel, будет иметь именно ту кодировку, которая была вами установлена.
Как видим, у Эксель нет инструмента, который позволил бы быстро и удобно конвертировать текст из одной кодировки в другую. Мастер текста имеет слишком громоздкий функционал и обладает множеством не нужных для подобной процедуры возможностей. Используя его, вам придется проходить несколько шагов, которые непосредственно на данный процесс не влияют, а служат для других целей. Даже конвертация через сторонний текстовый редактор Notepad++ в этом случае выглядит несколько проще. Сохранение файлов в заданной кодировке в приложении Excel тоже усложнено тем фактом, что каждый раз при желании сменить данный параметр, вам придется изменять глобальные настройки программы.
Leading Practice
Encoding your Excel files into a UTF format (UTF-8 or UTF-16) can help to ensure anything you upload into Alchemer can be read and displayed properly. This is particularly important when working with foreign or special characters in Email Campaigns, Login/Password Actions, Contact Lists, Data Import and Text and Translations. All of those features have the ability to receive CSV file uploads.
There are a few different ways to get the proper UTF encoding so we will go over how to do this in older versions of Microsoft Excel, OpenOffice, LibreOffice, Google Drive and even how to use the Terminal application to do it!
How to Encode your Excel Files
Below are links to videos and step by step instructions on how to go about encoding your Excel files to UTF-8 and UTF-16. Excel 2011 and beyond do not have options to encode UTF files.
Depending on your version of Excel, you may be able to encode your file to UTF-8 during the Save As process. This will depend on the your Excel version as well as whether you are using a Mac or PC.
Excel Versions 1999 to 2010
Check out our quick step-by-step video: UTF-8 Encoding Video
- Go to your Excel document.
- Click File (or the Colorful circle icon, depending on the version of Excel you have).
- Select Save As and choose the format of the Excel file you’d like to use.
- Name your file, and update your file path as needed.
- Click Tools, then select Web options.
- Go to the Encoding tab.
- In the dropdown for Save this document as: choose Unicode (UTF-8).
- Click Ok.
- Click Save.
Excel for Mac
While there is not an option for UTF-8 encoding a CSV in older versions of Excel for Mac, an up to date version of Excel makes this fairly straightforward.
- Click File > Save As.
- You will see the Save dialog box. Via the File Format dropdown menu, select the CSV UTF-8 option.
- Click Save.
Open Office.org
If you do not have access to Excel, you can download the free open-source office software suite called OpenOffice. To learn more, please visit: http://www.openoffice.org
Quick Step by Step Video: UTF-8 Open Office Video
- Open up OpenOffice, and open your Excel document.
- Click File in the upper left-hand corner of your toolbar.
- Choose Save As.
- Name your file, and update your file path as needed.
- Save your Type as CSV, and then check the box for Edit Filter Settings.
- Click Save.
It will take a moment but an Export of text files window will show up with more options. - Next to Character Set, choose Unicode (UTF-8).
- Click OK, and you’re done!
LibreOffice
Another free open-source office alternative to Microsoft Office is LibreOffice. You can download it at http://www.libreoffice.org/.
- Open LibreOffice and click Open File along the left. Select your file and Open.
- Click File > Save As… The following window will appear, change the File Type to Text CSV and select the Edit filter settings option, then click Save.
- An error window will pop up, but don’t worry about it. Just click Use Text CSV Format.
- In the next window that appears, make sure that the Character set is Unicode (UTF-8). This should be the default.
- One final error will pop up, saying that only the active sheet was saved. Just click OK and you’re good to go!
Google Drive
One widely available web-based solution for encoding XLS files as UTF-8 CSV is Google Drive aka Google Docs. You can upload an existing file and easily export it following these steps.
- From the main Google Drive screen, click New > File Upload. Choose your XLS file and click Open.
- Once the file is uploaded, double-click it in the menu to open a preview of the file. Then click Open along the top bar.
- The spreadsheet will load, now you can click File > Download as > Comma-separated values (.csv, current sheet). The download will start immediately.
Using Terminal
As a last-ditch effort you can easily convert files to UTF-8 encoding using Terminal. You may need to download this library in order to use the iconv command.
To get started, save your CSV to your desktop with a concise file name.
Apple OSX Steps
- Hit command+spacebar to get to Spotlight and search for «Terminal» and click Terminal to open.
- At the prompt type the below and press Enter:
cd desktop
- Paste in the following:
iconv -c -t utf8 filename.csv > filename.utf8.csv
- Change your filenames to match the one on your desktop and press Enter.
- Et Voila! Your file is UTF-8 encoded. Do not open file after you convert!
Windows Steps
- Go to the Start menu and search «cmd» and click cmd to open.
- At the prompt, enter the following (replacing username with your Windows username) and press Enter:
cd C:Users(username)Desktop
- Paste in the following:
iconv -c -t utf8 filename.csv > filename.utf8.csv
- Change your filenames to match the one on your desktop and press Enter.
- Your file is now UTF-8 encoded. Do not open the file after you convert, go ahead and upload it to our system.
Filter:
Basic
Standard
Market Research
HR Professional
Full Access
Reporting
Free
Individual
Team & Enterprise
Feature | Included In |
---|
Если при импорте контактов вы видите нечитаемые символы, как на скриншоте, это значит, что кодировка файла не подходит для импорта в Unisender. Файл нужно перекодировать в UTF-8. Далее мы расскажем, как это сделать в Excel.
Переходим на вкладку «Данные», выбираем «Получение внешних данных», а далее — «Из текста».
Открывается мастер импорта текста.
С текущей кодировкой содержимое файла нечитабельное.
В поле «Формат файла» перебираем кодировки, пока не найдём ту, в которой текст отображается правильно. Вариантов много, поэтому можно начать с форматов, которые начинаются со слова «Кириллица». Находим нужный формат, нажимаем «Далее».
Выбираем символы-разделители. В нашем случае это запятая.
Нажимаем «Далее» → «Готово» → «OK».
Так выглядит импортированный текст в Excel.
Теперь нажимаем «Файл» → «Сохранить как».
Вводим название файла, тип файла выбираем CSV, ниже нажимаем «Сервис» → «Параметры веб-документа».
Переходим на вкладку «Кодировка», выбираем «Юникод UTF-8» и нажимаем «OK».
Файл сохранён.
Теперь импортируем его и видим, что текст отображается корректно.
Полезные ссылки
Формат данных для загрузки
Как импортировать контакты
Как импортировать номера телефонов
Что такое отчёт об ошибках при импорте
Проверка контактов
Вы нашли ответ?
Свежие статьи
-
Как определить шрифт по картинке?
14.04.2023 -
Креатив
14.04.2023 -
Как собрать список минус-слов для запуска рекламы?
14.04.2023 -
Репрезентативная выборка в рекламе: что это и как определить
14.04.2023 -
Бликфанг
13.04.2023 -
Партизанский маркетинг
13.04.2023
When using the Import Export Suite for WooCommerce plugin, the input CSV file must be encoded in UTF-8 format. This ensures that all your post types, such as products, orders, users, etc., are imported accurately. During import, you can avoid unnecessary characters like ž, ?, etc. If the CSV file is not UTF-8 encoded, then symbols like ™, ®, ©, etc. get converted to unwanted characters.
This article explains how to apply UTF-8 encoding with major spreadsheet applications like Microsoft Excel and Notepad for Windows, and Apple Numbers and TextEdit for Mac. Since Google Sheets is a widely used spreadsheet application, this article also explains a UTF-8 encoding with Google Sheets.
What is UTF-8 encoding?
A character in UTF-8 can be from 1 to 4 bytes long. UTF-8 can represent any character in the Unicode standard and it is also backward compatible with ASCII as well. It is the most preferred encoding for e-mail and web pages. It is the dominant character encoding for the worldwide web.
Here are two samples:
How to Save a CSV file as UTF-8 using Libre Office?
Step 1 – To save a CSV file as UTF-8 encoded, follow the steps below: Open LibreOffice and go to Files from the menubar. Click on open and select the file from the computer that you want to save as a UTF-8 encoded file.
Step 2 – After opening the file go to File > Save as. From the dialog box that opens, type the name of the file and select Text CSV (.csv) from the Save as type drop-down.
Check the Edit filter settings options.
Click on Save.
Step 3 – From the Export Text File dialog box that appears, select the Unicode (UTF-8) option from the Character set drop-down.
Step 4 – Set the field and text delimiter as you wish or leave as is.
Step 5 – Click OK.
This will save the file as UTF-8 encoded in Libre Office.
How to Save a CSV file as UTF-8 using Google Spreadsheet?
To save the CSV file as UTF-8 encoded, you can upload the file on Google Drive and easily store it as UTF-8. The steps are as given below:
Step 1 – First, open your Google Drive account. Click on the NEW button on the top left corner, and click Upload files option.
Step 2 – Browse for the required CSV file and start uploading it.
Step 3 – Open the uploaded file with Google Spreadsheet.
Step 4 – Navigate to File > Download as, and select Comma-separated values (.csv, current sheet) option.
The downloaded file gets saved as UTF-8 encoded by default and can be imported correctly when uploaded into our Import Export Suite for WooCommerce plugin.
How to Save the CSV file as UTF-8 in Microsoft Excel?
The steps are as given below:
Step 1 – Open the CSV file with a Microsoft Excel sheet.
Step 2 – Navigate to the File menu option and click Save As.
The window appears as shown below:
Step 3 – Click Browse to select a location to save the file.
The Save As window appears as shown below:
Step 4 – Enter the name of the file.
Step 5 – Select the Save as type as CSV (Comma delimited) (*.csv)option.
Step 6 – Click Tools drop-down box and click Web Options. A new window for web options appears as shown below:
Step 7 – Under the Encoding tab, select the option Unicode (UTF-8) from Save this document as drop-down list.
Finally, click Ok, and save the file.
How to Save a CSV file as UTF-8 with Notepad?
The steps are as given below: Open the CSV file with Notepad.
Step 1 – Open the CSV file with Notepad.
Step 2 – Navigate to File > Save As option. A screenshot of the menu is as shown below:
Step 3 – Select the location for the file.
The Save As window appears as shown below:
Step 4 – Select the Save as type option as All Files(*.*).
Step 5 – Specify the file name with .csv extension.
Step 6 – From the Encoding drop-down list, select UTF-8 option.
Step 7 – Click Save to save the file.
This way, you can save a file as a UTF-8 encoded with Notepad.
How to Save a CSV file as UTF-8 in Apple’s Numbers?
The steps are as given below:
Step 1 – Open the file with Apple Numbers.
Step 2 – Navigate to File > Export To > CSV. A screenshot of the settings is as shown below:
Step 3 – Under Advanced Options, select Unicode(UTF-8) option for Text Encoding. A screenshot of the settings is as shown below:
Step 4 – Click Next.
Further settings appear as shown in the screenshot below:
Step 5 – Enter the name of the file and click Export to save your file with the UTF-8 encoding.
How to save a CSV file as UTF-8 in TextEdit?
The steps are as given below:
Step 1 – Open the file with TextEdit.
Step 2 – Navigate to Format > Make Plain Text.
A screenshot of the menu is as shown below:
Step 3 – Navigate to File > Save.
It is shown as below:
Step 4 – From the Plain Text Encoding drop-down list, select Unicode(UTF-8).
Step 5 – Finally, click Save to save the file.
For customer queries and support, contact WebToffee support.
To know more about other features of the plugin, read the documentation.
- Was this article helpful?
- Yes, thanks!Not really