#unicode #encoding #google-ads-api #powerquery #m
#юникод #кодирование #google-ads-api #powerquery #m
Вопрос:
Основы: вопроса: как кодируются отчеты .cvs из Google Adwords?
Подробности: я пытаюсь импортировать файл .csv из adwords с помощью powerquery и, хоть убейте, не могу добиться, чтобы при импорте появлялись символы «,» (запятая).
Мой код:
let
// Get raw file data as txt file,
fnRawFileContents = (fullpath) as table =>
let
EveryLine = Lines.FromBinary(File.Contents(fullpath),1,true,1200),
Value = Table.FromList((EveryLine),Splitter.SplitByNothing())
in
Value,
// Use functions to load contents
Source = fnRawFileContents("C:UsersJamie.MarshallDesktopEmmaadwordsDoc.csv"),
#"Removed Top Rows" = Table.Skip(Source,1)
in
#"Removed Top Rows"
Факты:
- В документации Adwords говорится, что они используют UTC-16LE
- UTC-16LE в M — это кодовая страница 1200
- Я не могу открыть Adwords .csv в блокноте при любых настройках кодировки (Unicode, Unicode Big Endian, UTF-8, ASNI)
- Если повторно сохранить файл в Excel как UnicodeText, я могу открыть его с помощью notepad в формате Unicode Big Endian с разрывами строк, но без запятых («,»).
- Как я могу проверить кодировку в этих документах?
- Какая другая кодировка это может быть?
- Мы будем признательны за любую помощь по этому вопросу.
Ответ №1:
Почему вы используете lines вместо встроенного csv-парсера?
Используйте Csv.Document(file_content, [Delimiter="#(tab)", Columns=10, Encoding=1200, QuoteStyle=QuoteStyle.None])
Вот так
let
file_path = "C:UsersJamie.MarshallDesktopEmmaadwordsDoc.csv",
file_content = File.Contents(file_path),
csv = Csv.Document(file_content, [Delimiter="#(tab)", Columns=10, Encoding=1200, QuoteStyle=QuoteStyle.None]),
skip_1_row = Table.Skip(csv,1),
promote_header = Table.PromoteHeaders(skip_1_row),
remove_last_2_rows = Table.RemoveLastN(promote_header,2)
in
remove_last_2_rows