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)。