У меня есть файл CSV UTF-8, хранящийся на веб-сервере. Когда я загружаю файл, поместите его на свой жесткий диск, а затем импортирую его в лист Excel с помощью этого макроса (из макрорекордера):
Sub Macro2()
Workbooks.OpenText Filename:= _
"C:/myFile.csv", Origin _
:=65001, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
, Comma:=True, Space:=False, Other:=False
End Sub
Все символы (вьетнамские символы) отображаются правильно.
Когда я пытаюсь использовать тот же макрос, но вместо того, чтобы указывать локальный адрес файла ( "C:/myFile.csv" ), я передаю URL-адрес файла ( "http://myserver.com/myFile.csv" ) CSV правильно импортирован в мой лист Excel, но вьетнамские символы больше не отображаются правильно.
Я также пробовал использовать вкладку "Данные", но, по-видимому, кодировка игнорируется Excel:
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:/myFile.csv" _
, Destination:=Range("$A$1"))
.Name = "myFile.csv"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 65001
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = "~"
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Пример данных: „; Â; ˜; Â1/4; ‰; ™,™
который Excel неправильно читает как: „; Â; ˜; Â1/4; ‰; ™,™;