Получение дополнительного текста в файле Powershell Export-Csv - PullRequest
1 голос
/ 29 апреля 2019

У меня есть массив объектов в Powershell.Это работало, но теперь, когда я делаю Export-Csv для массива, имена его свойств и значений преобразуются следующим образом:

Account_No -> +ACI-Account+AF8-No+ACI-

Кто-нибудь знает, почему это происходит?

Спасибо

Я использую PS 5.1, и команда:

$rowsWithErrs | Export-Csv -Path $rowErrCsvPath -NoTypeInformation -Encoding UTF7

1 Ответ

1 голос
/ 29 апреля 2019

Похоже, нет ничего плохого в том, что вы делаете.Все отправляется в том формате, который вы ожидаете.

Единственная проблема заключается в том, что приложение, которое вы используете для просмотра ваших данных, не использует ту же кодировку, которая использовалась для записи данных.

Дополнительные символы - это то, что вы видите при интерпретации текста как UTF8 или чего-то подобного или совместимого с UTF8 (который является стандартом для большинства систем) вместо UTF7, когда текст был закодирован как UTF7.

пример

> "Account_No" | Out-File -FilePath test.txt -Encoding UTF7
> Get-Content test.txt -Encoding UTF8
Account+AF8-No
> Get-Content test.txt -Encoding UTF7
Account_No

если вы читаете данные CSV в Powershell, вы можете сделать следующее

> $csv = Import-Csv -FilePath $filepath -Encoding UTF7

, если вы читаете данные CSV в Excel, на вкладке данных выберите From Text/CSV в верхней части импорта.окно выбора файла происхождения 65000: Unicode (UTF-7)

File Origin select

Для других приложений, таких как VS Code или Notepad ++, вам может не повезти, если вы хотите просмотреть данные тампотому что, похоже, они не поддерживают кодировку UTF-7.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...