PowerShell 配置文件的正确(首选)编码是什么?



我在互联网上四处寻找,找不到相关信息。我的程序需要将一些 PowerShell 代码写入 PowerShell 配置文件。如果不存在配置文件,我的程序将创建一个。问题是应该使用什么编码来创建PowerShell配置文件。我应该使用 UTF8 吗?还是带有 BOM 的 UTF8?

从技术上讲,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

最新更新