How to enable save as csv utf-8 encoding in Excel 2016? Web options not working...

Anonymous
2023-06-20T17:39:14+00:00

Hello,

I followed the steps from this post, How to enable save as csv utf-8 encoding in Excel 2016? - Microsoft Community to try to enable UTF-8 in Excel 2016. However, my file is still not saving in UTF-8 format.

Thank you!

Microsoft 365 and Office | Excel | For home | Windows

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments
{count} votes

10 answers

Sort by: Most helpful
  1. Anonymous
    2023-06-20T18:35:52+00:00

    Hi Claudette T!

    You can try the alternative method stated below: Open your Excel file in Excel 2016.

    Go to the "File" tab in the ribbon menu and click on "Save As."

    In the "Save As" dialog box, choose a location to save your CSV file.

    In the "Save as type" dropdown menu, select "CSV (Comma delimited) (*.csv)."

    Click on the "Tools" button next to the "Save" button and select "Web Options."

    In the "Web Options" dialog box, go to the "Encoding" tab.

    Under the "Save this document as" section, select the option "Unicode (UTF-8)".

    Click "OK" to close the "Web Options" dialog box.

    Now, back in the "Save As" dialog box, click on the "Save" button to save your CSV file.

    Kindly let me know, if you require additional assistance, I will be glad to help further.

    Best Regards, Shakiru

    5 people found this answer helpful.
    0 comments No comments
  2. Anonymous
    2023-06-21T13:11:56+00:00

    Hi Shakiru!

    Should I see that the document is saved as CSV UTF-8? I followed the steps, but the spreadsheet is still saved in CSV format and column titles seem to have lost their accents. Not sure what I am doing wrong... Thanks for your help!

    0 comments No comments
  3. Anonymous
    2023-06-21T17:21:31+00:00

    Hi Claudette T!

    Thank you for the feedback.

    I'm sorry, unfortunately, I don't have any further troubleshooting to offer.

    There are many knowledgeable users active on the forum and I hope that someone else can offer further insight into your issue.

    Kind Regards, Shakiru

    0 comments No comments
  4. Andreas Killer 144K Reputation points Volunteer Moderator
    2023-06-22T03:54:27+00:00

    I followed the steps, but the spreadsheet is still saved in CSV format and column titles seem to have lost their accents. Not sure what I am doing wrong...

    You haven't done anything wrong, it simply doesn't work that way! It's a fake that's been circulating around the net for many years.

    I'm in a hurry, if you read this, please come back in a few hours I show you how this can be accomplished.

    Andreas.

    0 comments No comments
  5. Anonymous
    2023-06-22T05:28:57+00:00

    Hi,

    sample

    a table in activesheet

    pic1

    Image

    result

    open csv file through notepad

    pic2

    Image

    ================================

    step1

    Save  your Workbook with extension .xlsm (macros enabled workbook)

    Step2

    2a) press ALT+F11 to open Visual Basic

    2b) from the ribbon, select: Insert > Module and paste the code above on the right 

    2c) Press ALT+Q to Close Visual Basic

    Step3

    To run the macro, press ALT+F8, 

    select 'Convert_xl_to_csv_utf8 **'**from the list and click the run button.

    or

    add a button and assign the  vba macro

    (expected result in Thisworkbook path)

    vba

    Sub Convert_xl_to_csv_utf8() '<< START VBA

    '## 22-06-2023 ##

    Dim ws As Worksheet

    Set ws = ActiveSheet

    Dim lo As Object

    Set lo = ws.ListObjects(1)

    Dim sPath As String, sDelim As String, sFile As String

    sPath = ThisWorkbook.Path & ""

    sDelim = "," '<< comma or semicolon

    sFile = sPath & "table to csv-utf8.csv" '<< csv file name

    Dim r As Long, c As Long, i As Long, j As Long

    r = lo.Range.Rows.Count

    c = lo.Range.Columns.Count

    Dim obj As Object

    Set obj = CreateObject("ADODB.Stream")

    obj.Type = 2

    obj.Charset = "utf-8"

    obj.Open

    Dim v As Variant

    ReDim v(1 To c)

    For i = 1 To r

    For j = 1 To c

    v(j) = lo.Range.Cells(i, j).Value

    Next

    obj.WriteText Join(v, sDelim), 1

    Next

    obj.SaveToFile sFile, 2

    Dim npad

    npad = Shell("C:\WINDOWS\notepad.exe " & sFile, 1)

    End Sub '<< END VBA

    0 comments No comments