Hi,
if you are working with special characters (i.e. German Umlaute) within a Textfile it is importent to know with which text encoding (UTF8, ASCII…) a file is saved.
This cannot be be determine when a file is opened in Textmode because each file is converted (.NET) to UTF16 encoding into memory.
The solution is to open the file as stream, and read it. Here a powershell solution:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | PS D:\> $oFileStream = New-Object System.IO.StreamReader( "D:\myTextFile.ps1" , $true ) PS D:\> $oFileStream .Read() PS D:\> $oFileStream .CurrentEncoding BodyName : utf-8 EncodingName : Unicode (UTF-8) HeaderName : utf-8 WebName : utf-8 WindowsCodePage : 1200 IsBrowserDisplay : True IsBrowserSave : True IsMailNewsDisplay : True IsMailNewsSave : True IsSingleByte : False EncoderFallback : System.Text.EncoderReplacementFallback DecoderFallback : System.Text.DecoderReplacementFallback IsReadOnly : True CodePage : 65001 PS D:\> $oFileStream .Close() |
Michael