一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

DOS窗口cmd中显示UTF-8字符的解决方法

时间:2022-11-14 22:05:25 编辑:袖梨 来源:一聚教程网

在一个包含了中文字符的.sql文件,我们在Eclipse属性中看到是UTF8编码的,如下图所示,


技术分享

但是当在Windows控制台中查看这个文件(为了方便,我将文件拷贝到桌面了)的时候,就是乱码了:

C:Users02778Desktop>type abc.sql

USE Abc;

INSERT INTO `School` VALUES
(1,‘??浜?ぇ瀛Α?‘??浜??涓??虫????澶ц?7??,‘01062752114‘,‘???╁??),
(2,‘娓???澶у?‘,‘??浜??娴锋??轰腑?虫??澶ц?‘,‘01062785001‘,‘????瀹?),
(3,‘??浜?ぇ瀛Α?‘姹???????浜??榧?妤煎?烘??h矾22??,‘02583593186‘,‘??楠?‘),
(4,‘涓??戒汉姘?澶у?‘,‘??浜??娴锋??轰腑?虫??澶ц?59??,‘01062514305‘,‘???ㄩ??),
(5,‘???ㄥぇ瀛Α?‘绂?寤虹?????ㄥ???????璺?22??,‘05922186110‘,‘?卞?瀹?);

那如何让cmd可以显示这些UTF8编码的字符呢?这里需要先了解些相关内容:

chcp命令

chcp MS DOS中的命令,用来显示或设置活动代码页编号的。用法是:

C:Users02778Desktop>chcp /?

显示或设置活动代码页编号。

CHCP [nnn]

nnn 指定代码页编号。

不带参数键入 CHCP 以显示活动代码页编号。

C:Users02778Desktop>chcp

活动代码页: 936

UTF8编码

你也需要了解编码的一些知识,为了完成支持UTF8的工作,你至少需要知道UTF8代码页的编号:65001。更多关于编码的内容,这里不赘述,请自行查找相关内容。

有这两个知识点,接下来,让cmd支持UTF8就变得容易了。

1. 运行cmd;

2. 输入 chcp,回车查看当前的编码;

3. 输入chcp 65001,将输出:

Active code page: 65001

C:Users02778Desktop>

4. 如果仅如此,有可能还是不能支持UTF8的正常显示,你还要在窗体上右键,选择属性,来设置字体。在之前的936当中,是没有Lucida Console这个字体的,但是切换到65001后,就能看到了:


技术分享

6. 选择Lucida Console并只应用到本窗体,确认,然后再试试:

技术分享

这样就用cmd成功的显示UTF8的字符了。


如何在DOS窗口中显示UTF-8字符

在中文Windows系统中,如果一个文本文件是UTF-8编码的,那么在CMD.exe命令行窗口(所谓的DOS窗口)中不能正确显示文件中的内容。在默认情况下,命令行窗口中使用的代码页是中文或者美国的,即编码是中文字符集或者西文字符集。

如果想正确显示UTF-8字符,可以按照以下步骤操作:

1、打开CMD.exe命令行窗口

2、通过 chcp命令改变代码页,UTF-8的代码页为65001

chcp 65001

执行该操作后,代码页就被变成UTF-8了。但是,在窗口中仍旧不能正确显示UTF-8字符。

3、修改窗口属性,改变字体

在命令行标题栏上点击右键,选择"属性"->"字体",将字体修改为True Type字体"Lucida Console",然后点击确定将属性应用到当前窗口。

这时使用type命令就可以显示UTF-8文本文件的内容了:

type filename.txt

4、通过以上操作并不能完全解决问题,因为显示出来的内容有可能不完全。可以先最小化,然后最大化命令行窗口,文件的内容就完整的显示出来了。
++++++++++++++++++++++++++++++++++++

用命令chcp:
功能:
显示或设置活动代码页编号
  CHCP [nnn]
  nnn 指定代码页编号。
  不加参数键入 CHCP 显示活动代码页编号。
  nnn指定一已有的系统字符集,该字符集在CONFIG.SYS文件中由COUNTRY命令定义。
  在DOS下可以通过mode命令来设置代码页。
  选定代码页: MODE CON[:] CP SELECT=yyy
  代码页状态: MODE CON[:] CP [/STATUS]
  按Windows+R组合键,然后输入cmd或者command打开命令提示符。
  比如输入:mode con cp select=936,则表示显示简体中文。如果输入mode con cp select=437,则表示显示MS-DOS 美国英语,而中文显示将会是?。
  MS-DOS为以下国家和语言提供字符集:
  代码页 描述
  1258 越南语
  1257 波罗的语
  1256 阿拉伯语
  1255 希伯来语
  1254 土耳其语
  1253 希腊语
  1252 拉丁 1 字符 (ANSI)
  1251 西里尔语
  1250 中欧语言
  950 繁体中文
  949 朝鲜语
  936 简体中文(默认)
  932 日语
  874 泰国语
  850 多语种 (MS-DOS Latin1)
  437 MS-DOS 美国英语


热门栏目