Технически профиль PowerShell использует приведенную ниже кодировку (из моего собственного профиля 5.1).
BodyName : iso-8859-1
EncodingName : Western European (Windows)
HeaderName : Windows-1252
WebName : Windows-1252
Тогда как файл с UTF-8 будет выглядеть следующим образом.
BodyName : utf-8
EncodingName : Unicode (UTF-8)
HeaderName : utf-8
WebName : utf-8
Разница между ASCII, ISO-8859-1 и UTF-8:
ASCII: 7 bits. 128 code points.
ISO-8859-1: 8 bits. 256 code points.
UTF-8: 8-32 bits. 1,112,064 code points.
Это ранее обсуждалось в В чем разница между UTF-8 и ISO-8859- 1?
Вы можете проверить кодировку файла, используя приведенные ниже.
$reader = [System.IO.StreamReader]::new("File path", [System.Text.Encoding]::default,$true)
$peek = $reader.Peek()
$reader.currentencoding
$reader.close()
Другие параметры кодирования, которые будут работать.
utf8: UTF-8 without BOM
utf8bom: UTF-8 with BOM
utf16le: Little endian UTF-16
utf16be: Big endian UTF-16
windows1252: Windows-1252