╧╤;和╪;在Windows 7 cmd控制台上显示错误
我有一个python脚本,它使用扩展的ASCII字符代码179-218(更具体地说是179)将表绘制到控制台输出(│), 185(╣), 186(║), 187(╗), 188(╝), 200(╚), 201(╔), 202(╩), 203(╦), 204(╠), 205(═), 206(╬), 207(╧), 209(╤) 和216(╪). 我在Windows 10和Windows 7机器上运行脚本。在Windows 10机器上,所有内容都显示良好,但当我在Windows 7机器上运行脚本时,它不会显示209字符(╤), 207(╧) 和216(╪) 正确。当我复制粘贴字符到记事本和记事本++时,它显示正确,并且直接在其他位置键入这些字符也可以。当我直接在控制台键入字符时,也会发生同样的情况,我得到了错误的字符。如下所示:╧╤;和╪;在Windows 7 cmd控制台上显示错误,cmd,windows-7,Cmd,Windows 7,我有一个python脚本,它使用扩展的ASCII字符代码179-218(更具体地说是179)将表绘制到控制台输出(│), 185(╣), 186(║), 187(╗), 188(╝), 200(╚), 201(╔), 202(╩), 203(╦), 204(╠), 205(═), 206(╬), 207(╧), 209(╤) 和216(╪). 我在Windows 10和Windows 7机器上运行脚本。在Windows 10机器上,所有内容都显示良好,但当我在Windows 7机器上运行脚本时,
原因是什么?有没有办法解决这个问题?有两个可能的原因:
默认情况下,
cmd.exe
使用的代码页取决于为所用帐户配置的地区/国家/地区。通过打开并运行命令chcp
,可以查看自己用户帐户的所用代码页。如果此代码页支持完全不正确显示的字符,则可以在Wikipedia或其他网站上查找该代码页cmd.exe
使用的代码页。根据用户帐户配置的国家/地区,在两个Windows使用的相同代码页上,我建议在Windows 7 fontConsolas
或Lucida Console
上进行配置,而不是默认的光栅字体(终端
)并检查这是否有区别
有关字体设置,请参见:
- TechRepublic快速提示和
- 旧的(2007年)微软开发者博客
顺便说一句:在我的Windows 7计算机上,运行批处理文件时显示的字符以
*.lnk
文件开头,该文件使用光栅字体10x18(选定字体-终端)在快捷方式文件的属性中配置的字符与fontTerminal
的字符非常相似,而在运行cmd
时显示的字符与Courier New
的字符相似,尽管cmd控制台窗口的属性显示的是光栅字体8x12(选定字体-Terminal)。我只需在cmd属性的Size中选择10x18而不是8x12,就可以看到字符的外观发生了变化。因此它看起来像光栅(位图)fontTerminal
不支持默认大小8x12,因此Windows使用Courier New
作为替换,在默认控制台窗口中显示字符。我在Windows XP计算机上也可以看到同样的行为。奇怪的是,Microsoft将光栅字体Terminal
定义为默认字体ont安装在Windows XP/Vista/7上,但此字体的*.fon
文件都不支持默认字体大小8x12,因此替换字体Courier New
用于显示默认控制台窗口中的字符。这一切都是关于(与控制台字体无关)。例如╧代码>(U+2567=方框图向上单倍和水平向上双倍)在扩展ASCII(CP 437)中编码为207,但代码207在CP850中是·等。@Mofi,哇,这是很多文本。我并没有真正了解所有内容,但从您上次的评论中,我将字体从“光栅字体”更改为“Lucidia控制台”(唯一的另一个选项是“consolas”,它也可以工作),它解决了这个问题。你可以用它创建一个答案,我会接受它。