从评论想到的:Windows 可以在终端中直接显示中文?
上期内容的评论有提到在终端中显示中文字符的问题。看了几层楼之后突然意识到:这似乎涉及到了两个东西:终端模拟器与 MSDOS 模式。
一、MSDOS 模式
先来说 MSDOS 模式。这玩意儿又被称作实模式,是 Windows ME 及之前版本 Windows 操作系统中的一种特殊运行模式。可能有朋友说最后支持切换的不是 Windows98 吗?看起来是这样,但 WindowsME是可以通过将 OEM 审核模式的引导文件替换进系统来恢复实模式的,所以虽然默认不再提供进入选项,但实际上还算是支持的。在这个模式下,计算机只能访问有限的内存地址空间,并且无法加载图形用户界面。
发现了吗?这种模式下的 Windows 才对应着 Linux的 TTY 模式。显然,这个时候 Windows 也是不支持中文的。
接着说实模式。WinMe 不再正式支持实模式切换就像一个风向标 ,当 Windows NT 内核正式取代 DOS 内核之后,用户可操作的实模式便不再存在了。在这个阶段,实模式主要被用作启动操作系统。如今 UEFI 引导成为主流,实模式的用处也被进一步压缩。
二、终端模拟器
那现在 Windows 启动项中的命令提示符是什么东西呢?确切的说,不管你是从启动项中选择命令提示符,还是直接从正常的系统中打开命令提示符窗口,你所使用的都是“终端模拟器”,是建立在图形界面上的一个程序而非真正的字符模式。可以看看通过启动项选择命令提示符后的样式。输入命令启动任务管理器就可以发现,这个模式仍然启动了一个最基本的图形,然后打开了命令提示符程序。也正因此,这个窗口可以接受任何形式的字符。这种模式的终端对应在 Linux 中就是在图形界面启动了终端程序。它只是一个模拟器,因此可以显示各种形式的字符。
所以,要说 Linux 终端不能显示中文吧也对,毕竟 Linux 至今还保留有纯字符模式。但拿这个同 Windows 的命令提示符可以显示来对比可能就有失偏颇,毕竟 Windows 的命令提示符如今只是图形界面下的一个工具了。