powershell 改默认编码

windows下转换
win10 默认 powershell
windows下转换需要通过poweshell执行。不同版本powershell的默认编码是不同的。 可以先查看当前的powershell版本:

PS C:> $PSVERSIONTABLE
Name Value


PSVersion 5.1.19041.610
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.19041.610
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
当前主机的powershell版本是5.1。查看当前powershell的默认编码:

PS C:> [psobject].Assembly.GetTypes() | Where-Object { $.Name -eq 'ClrFacade'} |
ForEach-Object {
$
.GetMethod('GetDefaultEncoding', [System.Reflection.BindingFlags]'nonpublic,static').Invoke($null, @())
}
执行上述脚本后显示:

BodyName : gb2312
EncodingName : 简体中文(GB2312)
HeaderName : gb2312
WebName : gb2312
WindowsCodePage : 936
IsBrowserDisplay : True
IsBrowserSave : True
IsMailNewsDisplay : True
IsMailNewsSave : True
IsSingleByte : False
EncoderFallback : System.Text.InternalEncoderBestFitFallback
DecoderFallback : System.Text.InternalDecoderBestFitFallback
IsReadOnly : True
CodePage : 936
默认是gb2312。

中文版win10 Powershell默认编码为GB2312,而编程中常用编码格式为UTF-8。在UTF-8格式下编写的中文输出信息,在Powershell中执行程序就会显示乱码,这时需要更改编码格式。

1、临时修改
chcp 65001
直接在powershell中执行chcp命令。参数为编码号(参见下文数字编码表)

2、永久修改
win+R->输入regedit打开注册表,位置[HKEY_CURRENT_USER\Console],如下图,双击CodePage修改键值为指定编码的数字代号

————————————————
版权声明:本文为CSDN博主「Roc大鹏君」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u014756245/article/details/100536552

posted @ 2022-03-24 10:45  hanfe1  阅读(1969)  评论(0编辑  收藏  举报