PowerShell 中的 UTF-8 编码(CHCP 65001)
- PowerShell 中的 Unicode
-
在 Windows PowerShell 中更改系统区域设置以使用
UTF-8
编码 -
在
$PSDefaultParameterValues
变量中设置编码以在 Windows PowerShell 中使用UTF-8
编码
本教程将教你在 Windows PowerShell 中使用 UTF-8
编码。
PowerShell 中的 Unicode
Unicode 是一种全球性的字符编码标准。它定义了如何表示文本文件、网页和其他文档中的字符。
计算机系统使用 Unicode 来处理字符和字符串。PowerShell 中的默认编码是 Windows-1252
。
开发 Unicode 是为了支持世界上所有语言的字符。默认情况下,PowerShell 支持 Unicode 字符编码。
UTF-8
和 UTF-16
是最常见的 Unicode 编码。PowerShell 始终在所有 Unicode 编码中使用 BOM
,但 UTF7
除外。
BOM
(字节顺序标记)是一个 Unicode 签名,包含在文件或文本流的前几个字节中,表示 Unicode 编码。
在 Windows PowerShell 中更改系统区域设置以使用 UTF-8
编码
在 Windows 中可以选择更改系统区域设置(非 Unicode 程序的当前语言)。但此功能仍处于测试阶段。
从控制面板
转到区域设置
或从运行
程序打开 intl.cpl
。
打开管理
选项卡并单击更改系统区域设置
。然后检查 Beta 选项,如下图所示。
之后,按 OK
并重新启动计算机以应用设置。
重新启动计算机后,你可以检查 $OutputEncoding
变量以查看当前编码。
$OutputEncoding
输出:
如你所见,当前编码是 Unicode (UTF-8)。
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
现在,你可以在 PowerShell 中查看其他语言的字符。
Get-Content test.txt
输出:
만나서 반가워요
在 $PSDefaultParameterValues
变量中设置编码以在 Windows PowerShell 中使用 UTF-8
编码
你可以运行以下命令来激活 PowerShell 中的 UTF-8
编码。
$PSDefaultParameterValues = @{'*:Encoding' = 'utf8'}
它仅对当前的 PowerShell 控制台有效。退出 PowerShell 窗口后,它将重置为默认值。
Get-Content test.txt
输出:
만나서 반가워요
PowerShell 中的几个 cmdlet 具有 -Encoding
参数来指定不同字符集的编码。其中一些是 Add-Content
、Set-Content
、Get-Content
、Export-Csv
、Out-File
等。
-Encoding
参数支持这些值:ascii
、bigendianunicode
、oem
、unicode
、utf7
、utf8
、utf8BOM
、utf8NoBOM
、utf32
。
我们希望本教程让你了解在 Windows PowerShell 中使用 UTF-8 编码 (CHCP 65001)。