02 October,2019 by Tom Collins
Question: I've deployed a Powershell script - which includes a process to dump out a resultset to a csv file. I'm having an issue where the file is saved with encoding type Unicode - whereas I want the file to be saved as ANSI . This is a Powershell code snippet , using the Powershell cmdlet Out-File
(some_input) | select * -ExcludeProperty RowError, RowState, HasErrors, Name, Table, ItemArray | ConvertTo-Csv -NoTypeInformation | Select-Object -Skip 1| Out-File -filepath myoutputfile.txt
When I open the file in Notepad - and attempt a Save As - the encoding displays as Unicode .
How can I force Powershell to encode as ANSI ?
Answer: It's possible to force the Encoding type through extending the use of Powershell cmdlet out-file. There is a parameter called -Encoding . This is the adjusted Powershell code snippet you originally posted . The adjusted code snippet includes the addition of the -Encoding parameter as part of Out-File.
The input data is piped and a ConvertTo-Csv is executed , piped to a Select which skips the first row , and then piped to an Out-File , including the explicit Encoding
(some_input) | select * -ExcludeProperty RowError, RowState, HasErrors, Name, Table, ItemArray | ConvertTo-Csv -NoTypeInformation | Select-Object -Skip 1| Out-File -filepath -Encoding Ascii myoutputfile.txt
lf you execute your code again - and open in Notepad - you should now see ANSI as the Encoding type
Let me know if this works or any other methods you found to manage the Encoding type
Read more on Powershell and csv management
Export-CSV Powershell (SQL Server DBA)
How to write remove-item results to text with powershell out-file
Powershell write to Word document (SQL Server DBA)
This is only a preview. Your comment has not yet been posted.
As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.
Having trouble reading this image? View an alternate.
Posted by: |