首页 > 代码库 > cmd中utf-8编码的问题

cmd中utf-8编码的问题

有时候我们需要使用cmd显示某个utf-8编码的文本,这时候就需要设置cmd的代码页为65100。

技术分享

技术分享

也就是 chcp 65001 这条命令。这样设置可以临时生效。

如何要永久生效,需要在注册表中修改。

HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe

设置此路径名为 CodePage 项(DWORD32位值) ,值为十进制 65100。

以下是一些字符集:我们常用的是默认的 936 简体中文 和 65100 的 utf-8 。

1257 波罗的语1256 阿拉伯语1255 希伯来语1254 土耳其语1253 希腊语1252 拉丁 1 字符 (ANSI)1251 西里尔语1250 中欧语言950 繁体中文949 朝鲜语936 简体中文(默认)932 日语874 泰国语850 多语种 (MS-DOS Latin1)437 MS-DOS 美国英语

 

但是,切换为 utf-8 的代码页之后,又出来了新的问题。

首先是命令的返回信息变为英文的了。比如对比一下与之前的提示:活动代码页 和 Active code page 

这就让英文不好的我们尴尬了。

技术分享技术分享

 

然后接着的问题是,大家继续对比上图,我的输入法状态是中文五笔,可是依然不能输入中文。有网上说是因为系统没有启动 conime.exe 进程,我下载了这个进程,放在相应的目录,无论是通过点击还是启动 cmd 都没有把这个进程运行起来,始终没有解决方案,只能换回 936 ,才能输入中文。哪位高手知道如何解决,愿留言相告,感激不尽。

 

当然,utf-8下的问题还没完,虽然可以显示 utf-8 编码的文本了。但是在目录的切换过程中,却又出来了新的问题。

技术分享

技术分享

注意看图中的光标, 两个中文字符的时候,光标在第一个字的后面一点,再继续输入几个中文,光标越来越偏。这时候你还能好好的输入命令吗?别说大多都有完全主义+强迫症的朋友了,比如我。

最后再上一张图,大家猜这是什么情况?

技术分享

可能你没想到,我用cd退回上层目录后,在再后面输入了中文,输入的中文字符我也不知道有没有输入进去。只知道返回一条:

The system cannot write to the specified device.

我输入了什么?中文呀。那为什么会这样?

细心的你可能还没发现,上面这张图和之前的图片上的字体有点不一样。

是的,在输入中文之前我还更改了字体:

技术分享

我想问:难道点阵字体不支持中文显示?如果不支持显示的话为什么上面那一行的“简历”两个字能显示呢?

技术分享

为什么?

技术分享

 

附:从注册表设置 Lucida Console 字体 。

Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]"CodePage"=dword:0000fde9"WindowSize"=dword:00180050"FontSize"=dword:000c0000"FontFamily"=dword:00000036"FontWeight"=dword:00000190"FaceName"="Lucida Console"

最后:

我希望国家赶快繁荣昌盛,然后那些钱多到用来支持国外企业,多到用来刷女主播……的人,施舍点给国产计算机行业做发展吧。

对中文的支持,还得靠国人自己呀。

本文来源:http://www.cnblogs.com/daysme/p/6661298.html

cmd中utf-8编码的问题