Console的Code Page说明和设置方法

偶然翻看之前的文章,在一个关于mysql解决console乱码的主题里看到了自己写的一个解决console乱码的"彩蛋"。当时只是解决了乱码问题,没有详细深入一下根因,这次补上。

Code Page又称作代码页,在Windows系统中用来告诉console如何"理解"二进制代码,即将传输到控制台的字节序列,按代码页"约定"的编码方式,在屏幕上显示出来。

代码页437,是告诉console以ASCII编码字符集来显示,console就会把对应的1byte转换成屏幕上可读的显示字母(或不可见的控制字符)。

例子1:系统传过来的编码序列为:83 79 83,在code page 437下,console去查ASCII编码,按字节顺序,逐一"理解"后,显示出对应的字母是:SOS。

例子2,系统传过来的编码序列为:E4 BD A0 E5 A5 BD,在code page 437下,console去查ASCII编码,按字节顺序,逐一"理解"后,显示出对应的字母是:ä ╜ á å ¥ ╜。这个是啥呀,根本没办法认出来。这个时间,你只要把代码页切换到code page 65001,即让console去查UTF-8的编码,对应的显示就是2个中文字:你好。

是不是很神奇!这个就是有的时候,console输出是乱码的原因:console当前的代码页没法理解当前的字节序列,和当前要显示的字符编码不匹配。举个不是很准确的例子,A说英语,C听得懂中文,得找个把英语翻译成中文的翻译,这时却来了个法语翻译B,经B翻译A后出来的是法语,C听得就像"乱码"。code page的设置就是为了正确的理解字节序列。

字节 -> Code Page -> 字符,代码页就是干的这个工作。

在Windows下,设置代码页,有一个很简单的命令:chcp (change code page),使用方法如下:chcp nnn

chcp // 不带任何参数,显示当前使用的代码页

chcp 65001 // 带上指定的代码页编号,将当前代码页设置为UTF-8

相关推荐
百事牛科技1 天前
Excel的三种密码:防看、防存、防乱改,各管各的
windows·excel
the3clipse2 天前
MPC-HC 下载安装与最佳配置教程:免费开源、轻量无广告、支持 4K 硬解的 Windows 播放器
windows·播放器·安装教程·硬件加速·mpc-hc·字幕设置·lav filters
独隅2 天前
WebStorm Windows 版 React / Next.js 实战替换指南
javascript·windows·webstorm
陈工大模型2 天前
2026年11月最新免费解压软件横评:7-Zip 、 Win解压缩名列前茅
windows·软件工程·7-zip·压缩软件
中二骚年3 天前
Windows 安全中心 / 防火墙故障,calc和Microsoft Store,终端(管理员)无法正常打开。 原因 + 修复方案
windows·安全·microsoft
万联WANFLOW3 天前
CVE-2026-98432 等漏洞自查:AI 查出的 Linux、Windows 漏洞,运维怎么确认受不受影响
linux·运维·windows·网络安全
AlanAshley3 天前
Windows 中导致延迟的软硬件及协议比重
windows
yuezhilangniao3 天前
win10中文 以及 PowerShell 开发日常
windows·powershell
共享家95274 天前
408 操作系统第一章
服务器·数据库·windows
Sakura_j_h_4 天前
GitHub Actions 打包 Windows exe:中文编码与产物上传
windows·ci/cd·打包发布·github·pyinstaller·github actions