Windows的cmd和PowerShell如何修改编码为UTF-8

对于cmd

  1. 临时修改:可以通过在命令行输入chcp 65001来临时将编码更改为UTF-812。
  2. 永久修改:需要修改注册表。按win+r,输入regedit运行,进入注册表,找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor,新建一个名为autorun的字符串值,并将其值设为chcp 65001。这样每次启动cmd时都会自动更改编码为UTF-812。

对于PowerShell

  1. 临时修改:直接在PowerShell中输入$OutputEncoding = [Console]::OutputEncoding = [System.Text.Encoding]::UTF8可以临时更改当前会话的输出编码为UTF-834。
  2. 永久修改:可以通过修改PowerShell的profile文件来实现。首先,以管理员身份打开PowerShell,并运行New-Item $PROFILE -ItemType File -Force来创建或覆盖profile文件。然后,打开C盘,找到我的文档中的WindowsPowerShell文件夹,编辑这个ps1文件(默认是空的),加上以下代码$OutputEncoding=[console]::InputEncoding=[console]::OutputEncoding=New-Object System.Text.UTF8Encoding34。之后,重新打开PowerShell,新的设置就会生效。

修改PowerShell可能会遇到不加载脚本的问题,开放权限可能会有安全问题

PowerShell

  1. 输入以下命令之一来更改执行策略。这里有几个选项,每个选项的安全性级别不同:

    • Set-ExecutionPolicy RemoteSigned:允许从本地计算机上运行所有脚本,但从Internet下载的脚本必须具有受信任的发布者签名。这是最常用的策略之一。
    • Set-ExecutionPolicy Unrestricted:允许所有脚本运行。这可能会降低安全性,因为它不验证脚本的来源或签名。
    • Set-ExecutionPolicy AllSigned:允许运行所有具有有效签名的脚本。这要求所有脚本都必须有签名。
    • Set-ExecutionPolicy Bypass:绕过执行策略检查,允许所有脚本运行。这是最不安全的选项,因为它完全绕过了执行策略。

    例如,要设置为RemoteSigned,你可以输入:

    powershellSet-ExecutionPolicy RemoteSigned -Scope CurrentUser

    -Scope CurrentUser参数将更改应用于当前用户,而不是整个系统。如果你想更改整个系统的执行策略(需要更高的权限),可以使用-Scope LocalMachine参数。

  2. PowerShell会提示你确认更改。输入YA(对于所有)以继续。

  3. 现在你可以尝试再次运行你的脚本或命令来修改PowerShell的编码设置。

  4. (可选)如果你只是想临时绕过执行策略以运行脚本,你可以使用-ExecutionPolicy Bypass参数运行PowerShell,例如:

    powershellpowershell -ExecutionPolicy Bypass -File "your_script.ps1"

    但请注意,这只是在单次运行PowerShell时绕过执行策略,而不会永久更改它。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值