前言
做这篇博客是因为,我在使用Java IDEA编译java代码时出现了乱码,因为idea本身的terminal使用的是powershell,不管是cmd还是powershell都是默认GBK编码,所以做此篇博客记录
chcp
chcp可以来查看或打印当前的编码设置
永久更改CMD的默认编码:
-
通过命令行自动执行:
-
打开注册表编辑器,导航到
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor
。 -
在右侧窗格中,新建一个字符串值,命名为
autorun
。 -
双击
autorun
,数值数据填写chcp 65001
,这样每次打开CMD时都会自动执行此命令,将编码设置为UTF-8。
-
65001在编码页编号中代表UTF-8,GBK是936【十进制】
PowerShell的编码设置为UTF-8
-
打开PowerShell(以管理员身份)。
-
运行以下命令来创建或修改PowerShell的配置文件(
$PROFILE
):New-Item $PROFILE -ItemType File -Force
这个命令会在适当的位置创建一个配置文件,如果文件已经存在,使用
-Force
参数会覆盖它 。 -
接下来,使用文本编辑器(如记事本或Visual Studio Code)打开这个配置文件。你可以通过以下命令来编辑它:
notepad $PROFILE
或者如果你安装了Visual Studio Code,你可以使用:
code $PROFILE
在打开的文件中,添加以下代码:
$OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding
这行代码将设置PowerShell的输入和输出编码为UTF-8 。
-
保存并关闭配置文件。
-
为了使更改生效,你需要重新启动PowerShell。
-
重新打开PowerShell后,你可以运行以下命令来检查当前的编码设置:
[console]::InputEncoding [console]::OutputEncoding
如果一切设置正确,你应该看到输出为
System.Text.UTF8Encoding
。
这样,你的PowerShell的默认编码就被设置为UTF-8了。每次打开新的PowerShell窗口时,都会自动应用这个设置 。
取消掉PowerShell的编码:
要删除PowerShell配置文件($PROFILE
),你可以按照以下步骤操作:
-
打开PowerShell。
-
首先,你需要确认配置文件的确切路径。你可以通过执行以下命令来查看配置文件的路径:
$PROFILE
这将返回配置文件的完整路径。
-
一旦你知道了文件的路径,你可以使用
Remove-Item
命令来删除它。例如,如果配置文件位于C:\Users\你的用户名\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
,你可以执行以下命令来删除它:Remove-Item -Path "$PROFILE"
请确保将
"$PROFILE"
替换为你在上一步中获取的实际文件路径。 -
删除文件后,PowerShell将不再加载该配置文件,这意味着之前设置的UTF-8编码将不再生效,PowerShell将恢复到默认的编码设置。