logo
search
Data Import & Export

How to Save Excel 2016 CSV Files with UTF-8 Encoding

Muhammad TalhaMuhammad Talha Oct 15, 2026 871 views

Question details

The user needs a reliable method to export Excel 2016 worksheet data as a CSV file with UTF-8 encoding to preserve special characters.

How to Save Excel 2016 CSV Files with UTF-8 Encoding
Product
Microsoft Excel 2016
Device & OS
not provided
Scenario
Exporting tabular data to a CSV format while ensuring special characters, line breaks, and quotation marks are encoded correctly for use in another system.
Observed behavior
The standard Web Options method in Excel 2016 does not reliably produce a true UTF-8 CSV file, resulting in incorrectly encoded characters.
Before you start

Ensure your worksheet data is fully cleaned and formatted. Make a note of any special characters or symbols that require UTF-8 encoding to display correctly in your target system.

Solution 1Recommended

Use a VBA Macro with ADODB.Stream (Recommended)

Since the built-in Excel 2016 features are unreliable for this task, using a VBA macro to force UTF-8 encoding is the most robust solution.

The commonly suggested Web Options method is a known issue in Excel 2016 and often fails to encode the CSV properly. To guarantee UTF-8 output, you must use a VBA script utilizing the ADODB.Stream object to bypass Excel's native CSV saving mechanism.

1
Save as Macro-Enabled Workbook

Click File > Save As, and choose to save your current workbook as an Excel Macro-Enabled Workbook (*.xlsm).

2
Open Visual Basic Editor

Press Alt + F11 on your keyboard to open the Excel Visual Basic for Applications (VBA) editor.

3
Insert a New Module

In the top menu, click Insert > Module to open a blank coding window.

4
Paste the VBA Script

Create a macro utilizing ADODB.Stream. Set obj.Type = 2 and obj.Charset = "utf-8". Write a loop that iterates through your ActiveSheet or ListObject cells, appending the values using obj.WriteText with a comma delimiter, and finally execute obj.SaveToFile to export the file.

5
Run the Macro

Close the VBA editor, press Alt + F8, select your newly created Convert_xl_to_csv_utf8 macro, and click Run. Test the output file in a text editor to ensure delimiters and special characters display correctly.

Use a VBA Macro with ADODB.Stream (Recommended)

Save as UTF-8 CSV Easily with WPS Spreadsheet

Skip the complicated VBA macros. WPS Spreadsheet provides a built-in, fully functional option to save files directly as UTF-8 encoded CSVs with just a few clicks.

  1. 1. Open Your File: Launch WPS Spreadsheet and open your existing workbook.
  2. 2. Go to Save As: Click the Menu button in the top left corner and select Save As.
  3. 3. Select CSV UTF-8 Format: In the File Type drop-down menu, select 'CSV UTF-8 (Comma delimited) (*.csv)'.
  4. 4. Save the File: Choose your desired save location and click the Save button. Your special characters are now properly encoded.
Native one-click support for exporting to CSV UTF-8Highly compatible with Microsoft Excel formats (.xlsx, .xls, .xlsm)Free, lightweight, and easy to use without writing any code
microsoft office alternative - wps office

Frequently Asked Questions

Why do special characters look garbled when I open my CSV file?

This happens when a CSV is saved using standard ANSI or local system encoding instead of UTF-8. Target systems reading the file expect UTF-8 to correctly decode special characters, accents, and non-Latin text.

Why doesn't the Web Options method work correctly in Excel 2016?

Excel 2016's Web Options encoding setting was notoriously buggy for CSV exports and often failed to apply the byte-order mark or strict UTF-8 rules. Microsoft introduced a dedicated 'CSV UTF-8' save option in later versions (Microsoft 365 and Excel 2019) to fix this.

Can I automate the VBA UTF-8 conversion for multiple files?

Yes, you can modify the provided ADODB.Stream VBA macro to loop through all worksheets in a workbook or all workbooks in a specific folder, automatically converting each to a separate UTF-8 CSV file.