首页/系统/Windows 运维速查/chcp 切换控制台代码页
CMD 常用命令74 条

chcp 切换控制台代码页

查看或切换控制台代码页:中文系统默认 936(GBK),处理 UTF-8 输出或日志时可切到 65001。

Windows 运维速查系统更新于 2026-10-13

chcp 是干什么的

chcp 显示或切换当前控制台的“代码页”,也就是控制台解释字节流时使用的字符集。简体中文 Windows 默认是 936(GBK),而现代工具与跨平台项目普遍输出 UTF-8,于是终端里就出现了方块与乱码。chcp 65001 把当前控制台切到 UTF-8,是处理乱码问题的第一把扳手,但要注意它只影响控制台会话,不改文件本身的编码。

基本信息

适用平台Windows CMD 与部分终端宿主
语法chcp(查看当前);chcp 65001;chcp 936
常用值65001 UTF-8、936 简体中文 GBK、437 英文、950 繁体中文
影响范围仅当前控制台会话,不改变文件与系统编码

典型使用场景

  • 日志或脚本输出中文乱码:确认打印端与控制台编码是否一致
  • 运行跨平台工具:Node、Python、Git 等输出 UTF-8,控制台需切到 65001
  • 批处理脚本开头统一编码:避免不同机器默认代码页差异
  • 查看旧系统导出文件:GBK 文件在 UTF-8 控制台下必然花屏
  • 临时排查:先 chcp 看当前值,快速判断是否编码不匹配

常用示例

常用示例
:: 查看当前代码页
chcp
:: 切到 UTF-8
chcp 65001
:: 切回简体中文 GBK
chcp 936
:: 批处理开头静默切换(>nul 屏蔽输出)
@echo off
chcp 65001 >nul
echo 中文输出测试
:: 查看文件本身编码(PowerShell 侧判断)
powershell -c "Get-Content D:\a.txt -TotalCount 1 -Encoding Byte | Select-Object -First 3"

常见代码页对照

代码页字符集典型场景
936GBK 简体中文中文 Windows 默认值
65001UTF-8跨平台工具与现代日志
437英文(OEM)英文系统默认
950Big5 繁体中文繁体环境
1200/1201UTF-16LE/BE文件内部编码,非控制台常用
乱码要两端一起看:控制台代码页只是显示端,文件或程序输出的编码才是内容端。只有两端一致才不花屏,所以切完 chcp 仍然乱码时,要去检查源文件或程序的编码设置。
部分老程序直接按 ANSI 写屏幕,即使控制台已切到 UTF-8 也仍然乱码。这类程序需要在自身编码设置里调整,不能指望 chcp 解决全部问题。
chcp 的设置在计划任务、服务与远程会话里不会继承交互窗口的值。无人值守脚本要在开头显式执行 chcp,或改用 PowerShell 处理文本输出。

易错点

  • 以为是 chcp 没生效而反复切换:实际问题在文件编码或程序输出编码,方向错误
  • 只切控制台不检查字体:部分字体不含中文字形,切到 UTF-8 后依旧显示方块
  • 在批处理里假定默认代码页:不同机器默认值可能不同,脚本必须在开头显式设置
  • 用 chcp 处理文件转码:它只改控制台解释方式,要真正转码得用 PowerShell 或专用工具
  • 忘记 chcp 是会话级设置:新开窗口又回到默认值,造成“时好时坏”的错觉

数据来源与参考

  • Microsoft Learn:chcp 命令
  • Microsoft Learn:Code Page Identifiers

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌