根本原因是cmd默认使用gbk(代码页936)而非utf-8;永久解决首选系统区域设置中启用“beta版:使用unicode utf-8”,重启后所有新cmd窗口自动以utf-8启动,覆盖cmd、powershell、java、git bash及docker等场景。

Win10命令行执行Python脚本或type中文文本时显示“涓枃”“中文”等乱码,根本原因是CMD默认使用GBK(代码页936)而非UTF-8,临时用chcp 65001只能治标——必须永久修改系统级默认编码才能一劳永逸。
通过系统区域设置启用UTF-8(全局生效,推荐首选)
这一步直接改操作系统底层的非Unicode程序编码策略,影响范围最广:CMD、PowerShell、批处理、Java控制台、Git Bash中文路径、甚至Docker for Windows挂载的中文文件名都能正常识别。
第一步:按Win + R打开运行框,输入control回车,进入控制面板 → 时钟和区域 → 区域 → 管理选项卡 → 点击“更改系统区域设置”。
第二步:勾选【Beta 版:使用 Unicode UTF-8 提供全球语言支持】,点击确定。系统会弹出警告提示“某些程序可能无法正确显示”,这是正常提示,无需担心。
第三步:重启电脑。重启后所有新打开的CMD窗口自动以UTF-8启动,无需任何额外配置。注意:已打开的CMD窗口不会自动刷新编码,需关闭重开。
通过注册表强制CMD启动时切换编码(兼容旧环境)
如果你已启用系统级UTF-8但仍有部分.bat脚本双击闪退,或公司IT策略禁止启用Beta版UTF-8,就用这个方法单独锁定CMD行为——它不改动系统区域,只影响cmd.exe进程本身。
方法一:让CMD每次启动自动执行chcp 65001
按Win + R输入regedit → 导航到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor → 右键新建字符串值,命名为AutoRun → 双击编辑,数值数据填入chcp 65001(注意chcp和65001之间有一个空格)。
方法二:直接指定CMD控制台的默认代码页(更底层)
导航到HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe → 右键新建DWORD(32位)值,命名为CodePage → 双击修改数值数据为65001(十进制),基数选“十进制”。
【关键提醒】两个注册表项可同时存在,优先级:CodePage > AutoRun。若只设AutoRun而未启用系统UTF-8,某些含中文路径的.exe调用仍可能失败。
验证是否生效
关闭所有CMD窗口,重新按Win + R输入cmd回车。
输入chcp回车,屏幕应立即输出“活动代码页:65001”。
再执行echo 测试中文,确认文字清晰无乱码。
最后运行一个含中文路径的Python脚本,比如python "C:\我的项目\main.py",路径和print输出都应正常显示。











